我从未遇到过将 XML 从一种形式转换为另一种形式的任务。我听说 XSLT 就是为此目的,但我不想去那里。所以,只使用 ruby 和 nokogiri,我怎么能:
从初始 XML 中删除所有item 元素,但 time 并重命名元素 时间到HammerTime?
初始 XML:
...
<item>
<time>05.04.2011 9:53:23</time>
<iddqd>42</iddqd>
<idkfa>woot</idkfa>
</item>
<item>
...
期望的结果:
...
<item>
<HammerTime>05.04.2011 9:53:23</HammerTime>
</item>
<item>
...
我想出了如何使用 nokogiri 的 .xpath 将数据从 XML 放入数组,但是有没有一种方法可以将所需的转换成另一个 XML,而不必手动编写类似 puts "<HammerTime>#{array['time']}</HammerTime>"
的东西? ?
最佳答案
给你:
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML <<-EOHTML
<html>
<body>
<item>
<time>05.04.2011 9:53:23</time>
<iddqd>42</iddqd>
<idkfa>woot</idkfa>
</item>
</body>
</html>
EOHTML
hammer = doc.at_css "time"
hammer.name = 'hammertime'
doc.css("iddqd").remove
doc.css("idkfa").remove
outfile = File.new("output.html", "w")
outfile.puts doc.to_html
outfile.close
关于ruby - 使用 ruby/nokogiri 将 xml 转换为另一个 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584443/