का उपयोग करके विशेषताओं तक पहुंच कैसे प्राप्त करें मेरे पास कुछ विशेषताओं के मानों तक पहुंचने का एक आसान कार्य है। नीचे एक साधारण स्क्रिप्ट है जो एक साधारण एक्सएमएल दस्तावेज़ बनाने के लिए Nokogiri::XML::Builder
का उपयोग करती है।नोकोगिरी
require 'nokogiri'
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.Placement(:messageId => "392847-039820-938777", :system => "MOD", :version => "2.0") {
xml.objects {
xml.object(:myattribute => "99", :anotherattrib => "333")
xml.nextobject_ '9387toot'
xml.Entertainment "Last Man Standing"
}
}
end
puts builder.to_xml
puts builder.root.attributes["messageId"]
परिणाम में नीचे हैं:
<?xml version="1.0" encoding="UTF-8"?>
<Placement messageId="392847-039820-938777" version="2.0" system="MOD">
<objects>
<object anotherattrib="333" myattribute="99"/>
<nextobject>9387toot</nextobject>
<Entertainment>Last Man Standing</Entertainment>
</objects>
</Placement>
C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/document.rb:178:in `add_child': Document already has a root node (RuntimeError)
from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/node.rb:455:in `parent='
from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:358:in `insert'
from C:/Ruby/lib/ruby/gems/1.8/gems/nokogiri-1.4.2-x86-mingw32/lib/nokogiri/xml/builder.rb:350:in `method_missing'
from C:/Documents and Settings/etrojan/workspace/Lads/tryXPATH2.rb:15
एक्सएमएल कि उत्पन्न होता है ठीक लग रहा है। हालांकि, पहुँच गुण करने के लिए अपने प्रयास में कोई त्रुटि
Document already has a root node
मुझे समझ नहीं आता क्यों एक पुट बयान यह त्रुटि उत्पन्न होगी उत्पन्न किया जा करने के लिए कारण। किसी भी सुझाव के लिए बहुत आभार होगा।
महान सामान , इससे मुझे सप्ताहांत कोडफेस्ट के दौरान 2:22 बजे बाहर निकलने में मदद मिली। ग्रेसियस। –
मैंने इस कोड को http://www.dzone.com/snippets/finding-elements-attributes देखा और मेरा सिर तोड़ रहा था क्योंकि मैं @ बाहरी [का उपयोग कर रहा था। यह एक असली उद्धारक रहा है। मैंने एक्सएमएल विशेषताओं को पार्स करने के लिए एक तरीका जानने के लिए 2 दिन बर्बाद कर दिए हैं और यह एक सच्चा उद्धारक है। यह अच्छा होगा अगर यह लिंक नोकोगिरी –
में जोड़ा गया है तो आप विशेषता मूल्य 'nokogiri_element.xpath ("@ id") प्राप्त करने के लिए xpath का उपयोग कर सकते हैं। टेक्स्ट() ' – stopanko