如何使用Nokogiri获取XML中的前两个<quake>
数据?
数据按日期排列在 DESCENDING ORDER (eq_date)中。
我已经获得了第一个<quake>
数据,但我打算使用前两(2)个最新进行显示。
<quakes>
<quake>
<eq_date>1449528341</eq_date>
<epicenter_code>191</epicenter_code>
<magnitude>39</magnitude>
</quake>
<quake>
<eq_date>1449505356</eq_date>
<epicenter_code>471</epicenter_code>
<magnitude>44</magnitude>
</quake>
<quake>
<eq_date>1449371999</eq_date>
<epicenter_code>797</epicenter_code>
<magnitude>42</magnitude>
</quake>
<quake>
<eq_date>1449293419</eq_date>
<epicenter_code>287</epicenter_code>
<magnitude>38</magnitude>
</quake>
and more.........
</quakes>
答案 0 :(得分:1)
我这样做:
require 'nokogiri'
doc = Nokogiri::XML(<<EOT)
<quakes>
<quake>
<eq_date>1449505356</eq_date>
<epicenter_code>471</epicenter_code>
<magnitude>44</magnitude>
</quake>
<quake>
<eq_date>1449505356</eq_date>
<epicenter_code>471</epicenter_code>
<magnitude>44</magnitude>
</quake>
<quake>
<eq_date>1449505356</eq_date>
<epicenter_code>471</epicenter_code>
<magnitude>44</magnitude>
</quake>
<quake>
<eq_date>1449505356</eq_date>
<epicenter_code>471</epicenter_code>
<magnitude>44</magnitude>
</quake>
and more.........
</quakes>
EOT
解析文档后,很容易找到所有出现的内容:
quakes = doc.search('quake')
quakes.size # => 4
然后很容易抓住具体的:
quakes[0].to_xml # => "<quake>\n <eq_date>1449505356</eq_date>\n <epicenter_code>471</epicenter_code>\n <magnitude>44</magnitude> \n </quake>"
quakes[1].to_xml # => "<quake>\n <eq_date>1449505356</eq_date>\n <epicenter_code>471</epicenter_code>\n <magnitude>44</magnitude> \n </quake>"
或者,您可以迭代quakes
,这是一个NodeSet,其行为类似于数组。
答案 1 :(得分:0)
<强>解决强>
我得到了它,只是通过索引获得。
NSNotFound