gpt4 book ai didi

ruby-on-rails - 有没有一种方法可以在 Ruby 中迭代特定的 XML 标记?

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:09 27 4
gpt4 key购买 nike

是否可以在 Ruby 中迭代特定的 XML 标记?在我的例子中,我想遍历以下 XML 代码中的 desc 标签:

<desc>
<id>2408</id>
<who name="Joe Silva">joe@silva.com</who>
<when>Today</when>
<thetext>Hello World</thetext>
</desc>
<desc>
<id>2409</id>
<who name="Joe Silva2">joe2@silva.com</who>
<when>Future</when>
<thetext>Hello World Again</thetext>
</desc>

到目前为止,这是我使用的代码:

xml_doc = agent.get("www.somewhere.com/file.xml")
document = REXML::Document.new(xml_doc.body);

# iterate over desc here

我想遍历每个 desc 标签,以便获得以下输出:

commentid : 2408
name : Joe Silva
who : joe@silva.com
bug_when : Today
thetext : Hello World

commentid : 2409
name : Joe Silva2
who : joe2@silva.com
bug_when : Future
thetext : Hello World Again

有什么建议吗?

最佳答案

包含 who 节点的 name 属性的 Nokogiri 示例:

require 'nokogiri'

doc = Nokogiri.XML '
<root>
<desc>
<id>2408</id>
<who name="Joe Silva">joe@silva.com</who>
<when>Today</when>
<thetext>Hello World</thetext>
</desc>
<desc>
<id>2409</id>
<who name="Joe Silva2">joe2@silva.com</who>
<when>Future</when>
<thetext>Hello World Again</thetext>
</desc>
</root>
'

doc.css("desc").each do |desc|
puts "commentid : #{desc.css("id").text}"
puts "name : #{desc.css("who").attribute("name")}"
puts "who : #{desc.css("who").text}"
puts "bug_when : #{desc.css("when").text}"
puts "the text : #{desc.css("thetext").text}"
end

关于ruby-on-rails - 有没有一种方法可以在 Ruby 中迭代特定的 XML 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28159773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com