summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/rexml/xpath_parser.rb12
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