0
我有一個xml文檔,我想名爲「InitgPty」的元素添加子元素,我試圖這樣做如下:引入nokogiri:查找和XML元素,然後添加子元素
filename = "#{payment.updated_at.strftime("%Y%m%d")}.xml"
file_contents = File.read("#{filename}")
doc = Nokogiri::XML(file_contents)
initgpty = doc.at_xpath("//InitgPty")
first_id_tag = Nokogiri::XML::Node.new "Id", doc
initgpty.add_next_sibling(first_id_tag)
問題是
initgpty = doc.at_xpath("//InitgPty")
返回nil,所以我過得好.add_next_sibling一個NoMethodError。這是我第一次使用XML和nokogiri,但對我來說,生成的XML由
doc = Nokogiri::XML(file_contents)
看起來很奇怪。下面是從鐵軌控制檯是什麼線路輸出的一個片段:
#<Nokogiri::XML::Element:0x58d9582 name="InitgPty" namespace=#<Nokogiri::XML::Namespace:0x58ce1be href="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02"> children=[#<Nokogiri::XML::Text:0x58d92d0 "\n ">, #<Nokogiri::XML::Element:0x58d9212 name="Nm" namespace=#<Nokogiri::XML::Namespace:0x58ce1be href="urn:iso:std:iso:20022:tech:xsd:pain.008.003.02"> children=[#<Nokogiri::XML::Text:0x58d8e84 "B8S Chatter Creators">]>, #<Nokogiri::XML::Text:0x58d8d12 "\n ">]>
這是正確的,並且NoMethodError是由別的原因引起的?任何關於此事的幫助都將不勝感激。
原始XML的外觀如何? 'InitgPty'元素位於'urn:iso:std:iso:20022:tech:xsd:pain.008.003.02'命名空間中,因此您可能需要將其包含在XPath查詢中。 – matt
'doc.css('InitgPty')。first'? – Matt
@Matt我可以在xml文檔上使用css嗎? – SoSimple