2013-10-04 42 views
3

我在XML文件中發現了很多remove element node的例子。這裏是一個例子,我沒有找到任何解決方案或者在計算器或谷歌。 例如:刪除一個節點lxml python

<slide> 
    America 
    <a> 2 </a> 
    <b> 3 </b> 
    <c> 4 </c> 
</slide> 

<slide> 
    Germany 
    <a> 5 </a> 
    <b> 6 </b> 
    <c> 7 </c> 
</slide> 

我會用remove功能刪除元素節點,因爲我使用LXML。但現在我不得不刪除「美國」和「德國」,它們實際上不是元素節點,而是文本。

有沒有辦法像任何函數一樣去除這個?

我目前使用python lxml庫。

輸出應該是這樣的:

<slide> 
    <a> 2 </a> 
    <b> 3 </b> 
    <c> 4 </c> 
</slide> 

<slide> 
    <a> 5 </a> 
    <b> 6 </b> 
    <c> 7 </c> 
</slide> 

回答

5

使用text財產。例如:

html = '''... 
<slide> 
    America 
    <a> 2 </a> 
    <b> 3 </b> 
    <c> 4 </c> 
</slide> 

<slide> 
    Germany 
    <a> 5 </a> 
    <b> 6 </b> 
    <c> 7 </c> 
</slide> 
....''' 

import lxml.html 
root = lxml.html.fromstring(html) 
for slide in root.xpath('.//slide'): 
    slide.text = '' 
+0

這很完美。那麼簡單..嗯....非常感謝你! –

+0

@SangameshHs:說同樣的事情的捷徑是接受按鈕:P –

+0

大聲笑..我不能讓答案,直到下一個6分鐘:P :) –