I ont un fichier XML comme:Comment récupérer les attributs de 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>
Je veux saisir tous les attributs du fichier. Je peux obtenir @doc.at('fileHeader')['vendorName']
mais je n'obtiens pas le résultat attendu ONRM_ROOT_MO_R
pour la deuxième déclaration puts
.
Voici mon code 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']
La sortie est:
Ericsson
./bulk_cm_parse.rb:10:in `<main>': undefined method `[]' for nil:NilClass
(NoMethodError)
Merci d'avoir apporté les modifications nécessaires pour clarifier le problème. – ssharma
Il n'est pas nécessaire de nous remercier. En outre, les commentaires ne sont pas pour remercier les gens. Upvotes et sélection des réponses le font. Voir le dernier paragraphe dans http://stackoverflow.com/help/someone-answers. –