偽のデータを返します。鋸山 - tag.contentsは、私は、このXMLを持って
<record>
<f id="27">John Smith</f>
<f id="28"/>
</record>
私は鋸山でこのようにそれを解析:
# 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
です間違っている。 2番目の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]
}
}
私にとっては(xpathを '// f'に変更して)奇妙です。 「レコード」の作成方法を教えてください。また、Ruby for-loopsは非常に非慣用的であることに注意してください(それぞれEnumerable#を代わりに使用してください) – tokland
'records'変数もあり、' records.each {| record | ...} 'と' records'は 'SOMEXML.xpath(" // record ")'から来ます。私は実際にはforループではなく、それぞれを使用します。 –
正確な(ただし最短の)XMLと問題を再現するコードを貼り付けるほうが簡単です。 – tokland