我想删除整个子节点后重新打印修改后的xml

时间:2011-11-01 17:12:47

标签: ruby xml rexml

<product>
<book>
    <id>111</id>
    <name>xxx</name>
</book>
<pen>
    <id>222</id>
    <name>yyy</name>
</pen>
<pencil>
    <id>333</id>
    <name>zzz</name>
</pencil>

我想删除“铅笔”节点并使用REXML(Ruby)打印剩余的xml。谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:1)

使用其中一种删除方法http://rubydoc.info/stdlib/rexml/

require "rexml/document"
string = <<EOF
  <product>
  <book>
      <id>111</id>
      <name>xxx</name>
  </book>
  <pen>
      <id>222</id>
      <name>yyy</name>
  </pen>
  <pencil>
      <id>333</id>
      <name>zzz</name>
  </pencil>
  </product>
EOF
doc = REXML::Document.new(string)
doc.delete_element('//pencil')
puts doc

还有很好的教程可以帮助您入门:http://www.germane-software.com/software/rexml/docs/tutorial.html