2011-11-01 80 views
0
<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(紅寶石)剩餘XML後轉載修改後的XML。任何人都可以告訴我該怎麼做?

回答

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

+0

的** ** to_s在最後是沒有必要的。 __puts__默認情況下在對象上調用**。to_s **。 – hololeap