红宝石,解析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> 
+0

是您使用的库来解析XML?此外,你的问题看起来像一堆随机的时间戳和文字给我。 – 2010-06-03 23:08:50

+0

文档中没有''标签。 – 2010-06-03 23:11:09

您可以使用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道歉,我的意思是而不是 你是对的,Jakub,没有标签。 – kamal 2010-06-06 11:29:44