Nokogiri:查找和XML元素,然后添加子元素



我有一个xml文档,我想在名为"InitgPty"的元素下添加子元素,我正在尝试这样做,如下所示:

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)

看起来很奇怪。以下是该行在 rails 控制台中输出的内容片段:

#<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 是由其他原因引起的?如能就此事提供任何帮助,将不胜感激。

尝试使用 CSS 选择器。这也适用于 XML 文档:

doc.css('InitgPty').first
#should return the first element named InitgPty

相关内容

  • 没有找到相关文章

最新更新