У меня есть этот XML:
<record>
<f id="27">John Smith</f>
<f id="28"/>
</record>
и проанализируйте его с помощью Nokogiri следующим образом:
# I get the record from the whole document
...
fields = record.xpath("f")
for field in fields
puts field.content
end
, который возвращает это:
John Smith
\n 28 \n
Это неверно,Второй тег field
не имеет ничего внутри тега, он должен возвращать пустое значение.Правильно?
Кстати, то же самое происходит и с LibXML.
Это фактический код:
xml = Nokogiri::XML("<?xml version="1.0" ?><records><record><f id="27">John Smith</f><f id="38"/></record></records>")
records = xml.xpath("//record")
records.map{|record|
fields = record.xpath("f")
fields.to_enum(:each_with_index).collect{|field,index|
[field.content, index]
}
}