3

remove element nodeXML ファイルで多くの例を見つけました。しかし、これはスタックオーバーフローでもグーグルでも解決策が見つからなかった例です。例えば:

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

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

removelxml を使用しているため、関数を使用して要素ノードを削除します。しかし、実際には要素ノードではなくテキストである "America" と "Germany" を削除する必要があります。

関数のようにこれを削除する方法はありますか??

現在、python lxml ライブラリを使用しています。

出力は次のようになります。

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

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

1 に答える 1

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 = ''
于 2013-10-04T15:29:24.760 に答える