InQusitive InQusitive - 1 month ago 5
Ruby Question

How to get XML parent attribute value

I have multiple statements like:

<House name="test1">
<Room id="test2" name="test3" >
<test name="test4" param="test5">
<blah id="test6" name="test7">
</blah>
</test>
</Room>
</House>


When the
blah name
is some particular value like
test7
I need the corresponding Room name. How do I achieve that?

Answer

I never used Nokogiri but I tried and this seems to work:

 xml_doc.css('blah[name="test7"]').first.ancestors("Room").first['name']
 => "test3" 

Just check for nils.

2.3.1 :132 > xml_doc.css('blah[name="test7"]').map { |node| node.ancestors("Room").first['name'] }
 => ["test3"]