红宝石,解析XML文档,我怎么能打印子标签的数量对于给定的标签
问题描述:
裁判XML文档红宝石,解析XML文档,我怎么能打印子标签的数量对于给定的标签
我想分析在每个<HOST>
并获得<QID>
数量,每个
<TYPE>
<HOST>
<IP>10.1.3.1</IP>
<TRACKING_METHOD>IP</TRACKING_METHOD>
<DNS><![CDATA[.demo.com]]></DNS>
<OPERATING_SYSTEM><![CDATA[abcd Version 7]]></OPERATING_SYSTEM>
<ASSET_GROUPS>
<ASSET_GROUP_TITLE><![CDATA[Demo Lab ]]></ASSET_GROUP_TITLE>
<ASSET_GROUP_TITLE><![CDATA[Demo Lab cd]]></ASSET_GROUP_TITLE>
</ASSET_GROUPS>
<VULN_INFO_LIST>
<VULN_INFO>
<QID id="qid_43172">43172</QID>
<TYPE>Vuln</TYPE>
<SSL>false</SSL>
<FIRST_FOUND>2009-10-27T18:38:29Z</FIRST_FOUND>
<LAST_FOUND>2010-05-10T18:22:11Z</LAST_FOUND>
<TIMES_FOUND>4</TIMES_FOUND>
<VULN_STATUS>Active</VULN_STATUS>
</VULN_INFO>
<VULN_INFO>
<QID id="qid_43142">43142</QID>
<TYPE>Vuln</TYPE>
<SSL>false</SSL>
<FIRST_FOUND>2009-05-08T17:41:01Z</FIRST_FOUND>
<LAST_FOUND>2010-05-10T18:22:11Z</LAST_FOUND>
<TIMES_FOUND>5</TIMES_FOUND>
<VULN_STATUS>Active</VULN_STATUS>
</VULN_INFO>
</VULN_INFO_LIST>
</HOST>
<HOST>
答
您可以使用Nokogiri和做类似:
require 'nokogiri'
xml_string = #load the xml however you want here
doc = Nokogiri::XML(xml_string)
doc.css("HOST").each do |host|
puts "host #{host.at_css('IP').text}"
qids = host.css("QID")
puts "#{qids.length} QIDs"
qids.each do |qid|
puts qid.text
end
puts "---"
end
+0
我为Typo道歉,我的意思是
是您使用的库来解析XML?此外,你的问题看起来像一堆随机的时间戳和文字给我。 – 2010-06-03 23:08:50
文档中没有''标签。 –
2010-06-03 23:11:09