作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个基本 XML,需要通过 Ruby 脚本进行修改。 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<name>So and So</name>
</config>
我能够打印 <name>
的值:
require 'rexml/document'
include REXML
xmlfile = File.new("some.xml")
xmldoc = Document.new(xmlfile)
name = XPath.first(xmldoc, "/config/name")
p name.text # => So and so
我想做的是通过其他方式更改值(“某某”)。我似乎找不到该用例的任何示例(在文档中或其他地方)。甚至可以在 Ruby 1.9.3 中实现吗?
最佳答案
使用 Chris Heald 的回答,我设法用 REXML 做到了这一点——不需要 Nokogiri。诀窍是使用 XPath.each 而不是 XPath.first。
这个有效:
require 'rexml/document'
include REXML
xmlfile = File.new("some.xml")
xmldoc = Document.new(xmlfile)
XPath.each(xmldoc, "/config/name") do|node|
p node.text # => So and so
node.text = 'Something else'
p node.text # => Something else
end
xmldoc.write(File.open("somexml", "w"))
关于 ruby /REXML : Change a tag value from XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083973/
我是一名优秀的程序员,十分优秀!