diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rexml/xpath_parser.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/rexml/xpath_parser.rb b/lib/rexml/xpath_parser.rb index 6a32a06440..cab32b3a37 100644 --- a/lib/rexml/xpath_parser.rb +++ b/lib/rexml/xpath_parser.rb @@ -236,8 +236,16 @@ module REXML nodeset = new_nodeset when :parent - nodeset = nodeset.collect{|n| n.parent}.compact - #nodeset = expr(path_stack.dclone, nodeset.collect{|n| n.parent}.compact) + new_nodeset = [] + nodeset.each do |node| + if node.is_a?(Attribute) + parent = node.element + else + parent = node.parent + end + new_nodeset << parent if parent + end + nodeset = new_nodeset node_types = ELEMENTS when :ancestor |