3

Ruby スクリプトを使用して変更する必要がある基本 XML があります。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でも可能ですか?

4

2 に答える 2

3

rexml がこれを行うかどうかはわかりませんが、とにかく可能な限り rexml を使用しないことをお勧めします。

ノコギリはこれをうまくやっています:

require 'nokogiri'

xmldoc = Nokogiri::XML(DATA)
xmldoc.search("/config/name").each do |node|
  node.content = "foobar"
end

puts xmldoc.to_xml

__END__
<?xml version="1.0" encoding="UTF-8"?>
<config>
    <name>So and So</name>
</config>

そして結果の出力:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <name>foobar</name>
</config>
于 2013-06-13T09:52:01.667 に答える