如何獲取屬性,我有這樣一個XML文件:從XML
<?xml version="1.0" encoding="UTF-8"?>
<bulkCmConfigDataFile xmlns:es="EricssonSpecificAttributes.17.08.xsd"
xmlns:un="utranNrm.xsd" xmlns:xn="genericNrm.xsd"
xmlns:gn="geranNrm.xsd" xmlns="configData.xsd">
<fileHeader fileFormatVersion="32.615 V4.5" vendorName="Ericsson"/>
<configData dnPrefix="Undefined">
<xn:SubNetwork id="ONRM_ROOT_MO_R">
<xn:SubNetwork id="MKT_9364">
<xn:MeContext id="936426_SEYMOUR">
</xn:MeContext>
</xn:SubNetwork>
</xn:SubNetwork>
</configData>
<fileFooter dateTime="2017-05-08T10:15:53Z"/>
</bulkCmConfigDataFile>
我想抓住一切從文件的屬性。我可以得到@doc.at('fileHeader')['vendorName']
,但我沒有得到第二個puts
聲明的預期結果ONRM_ROOT_MO_R
。
這裏是我的Ruby代碼:
#!/usr/bin/env ruby
require 'xmlsimple'
require 'nokogiri'
require 'ap'
@doc = Nokogiri::XML(File.open("seymour.xml"))
puts @doc.at('fileHeader')['vendorName']
puts @doc.at('xn:SubNetwork')['id']
輸出是:
Ericsson
./bulk_cm_parse.rb:10:in `<main>': undefined method `[]' for nil:NilClass
(NoMethodError)
感謝您的編輯,使問題更加清晰。 – ssharma
沒有必要感謝我們。此外,評論並不是爲了感謝人們。 upvotes和選擇答案做到這一點。請參閱http://stackoverflow.com/help/someone-answers中的最後一段。 –