Ich habe eine XML-Datei wie:Wie holen Attribute von 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>
Ich möchte alle Attribute aus der Datei packen. Ich kann @doc.at('fileHeader')['vendorName']
bekommen, aber ich bekomme nicht das erwartete Ergebnis ONRM_ROOT_MO_R
für die zweite puts
Aussage.
Hier ist mein Ruby-Code:
#!/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']
Die Ausgabe lautet:
Ericsson
./bulk_cm_parse.rb:10:in `<main>': undefined method `[]' for nil:NilClass
(NoMethodError)
Danke für die Bearbeitung, um das Problem klarer zu machen. – ssharma
Es ist nicht notwendig, uns zu danken. Kommentare dienen nicht dazu, Menschen zu danken. Upvotes und die Auswahl von Antworten tun das. Siehe den letzten Absatz in http://stackoverflow.com/help/someone-answers. –