2010-03-03 48 views
0

使用Ruby的reXml,我有一個特定的元素,我想完全清除它的所有子節點和文本。刪除所有子節點和元素的文本

我只是不能解決如何做到這一點。

鑑於此:

<ug> 
    <oog> 
    Delete<delete/>all<delete/>this 
    </oog> 
</ug> 

我想刪除OOG的所有兒童,這結束了:

<ug> 
    <oog> 
    </oog> 
</ug> 

我可以用它來刪除節點:

blah = REXML::Document.new('<ug><oog>Delete<delete/>all<delete/>this</oog></ug>') 
    oog = blah.elements['//oog'] 
    oog.elements.delete_all '*' 

    puts blah.to_s 

但是這並不刪除文本,所以我仍然有

<ug> 
    <oog> 
    Deleteallthis 
    </oog> 
</ug> 

任何想法?

回答

2

嘗試做你已經做什麼,然後補充說:

while node = oog.get_text 
    oog.delete node 
end 

REXML將文本節點不同於常規的要素,我不記得有多種原因。

+0

太棒了!今晚我回到家時會說一說。 –

+0

是的,它很好地!謝謝。順便說一句..我不得不編輯你的答案,因爲某些原因,它沒有讓我upvote,除非答案被編輯..不知道爲什麼,但無論如何,我只是把一個空間放在:!在你眼中,你應該得到許多讚美! –

相關問題