preceding(node)
private
Builds a nodeset of all of the preceding nodes of the
supplied node, in reverse document order
preceding |
includes every element in the document that precedes this node,
|
except for ancestors
Show source
def preceding(node)
ancestors = []
parent = node.parent
while parent
ancestors << parent
parent = parent.parent
end
precedings = []
preceding_node = preceding_node_of(node)
while preceding_node
if ancestors.include?(preceding_node)
ancestors.delete(preceding_node)
else
precedings << XPathNode.new(preceding_node,
position: precedings.size + 1)
end
preceding_node = preceding_node_of(preceding_node)
end
precedings
end