我有以下XML文件:
<book>
<bookname child="test">
<text> Works </text>
<text> Doesn't work </text>
</bookname>
</book>
这只是一个块,有多个<bookname>
标签。我需要遍历整个文档并删除特定的<text>
标记。我该怎么做?
我的方法是首先创建ElementTree
,然后使用Element
获取ElementTree.getroot()
实例。然后我使用Element.clear()
。这种方法可以吗?我曾想使用Element.remove()
,但我无法让它发挥作用。任何人都可以为我提供示例语法。
感谢您的帮助!
答案 0 :(得分:1)
只需致电parentNode.remove(childNode)
即可。像这样:
>>> etree.tostring(tree)
'<book> <bookname child="test"> <text> Works </text> <text> Doesnt work </text> </bookname></book>'
>>> bookname=tree[0]
>>> text2=bookname[1]
>>> bookname.remove(text2)
>>> etree.tostring(tree)
'<book> <bookname child="test"> <text> Works </text> </bookname></book>'
>>>
这里我拿了bookname节点并要求它删除它的第二个孩子。
要查找要删除的节点,我会使用xpath