etree xml解析和删除

时间:2015-12-17 13:04:54

标签: python xml elementtree

如何删除或删除server1的所有条目,包括标签?我尝试使用etree删除功能,但它没有帮助

<header> <main> <footer>

1 个答案:

答案 0 :(得分:3)

需要父对象从HTML / XML中删除其子对象。

使用getparent()方法获取父级,然后使用remove()方法删除其chid标记。

<强>演示

>>> import lxml.etree as PARSER
>>> root = PARSER.fromstring(data)
>>> root.xpath("//hosts/host[@name='server1']")
[<Element host at 0xb6d2ce6c>]
>>> a = root.xpath("//hosts/host[@name='server1']")
>>> for i in a:
...    pp = i.getparent()
...    pp.remove(i)
... 
>>> PARSER.tostring(root, method="xml")

A。 find返回None以下代码的对象。

>>> thingy = root.find('hosts')
>>> thingy

这应该是thingy = root.find('host')

B。使用xpath方法获取目标代码。