示例xml文件:
<root>
<child1 />
<child2 bksetname="Default Backup Set" />
<child3 bksetname="Local Backup Set" />
</root>
代码:
^{pr2}$输出:
Entering elem:
self._children.remove(element)
child2
ValueError: list.remove(x): x not in list
我试图通过搜索文件中的元素来删除元素,如果它具有我想要的属性,我在代码中尝试了这种方法,结果在我的输出中出现了共享错误。 请告诉我如何使用xml.etree.ElementTree包裹。在
为此,您需要访问项目的父级。如果您确定它曾经有一层深,您可以使用以下方法直接将其移除:
但如果不是,则需要创建一个反向树来访问父级,如describe Here,或者可以使用更强大的库,如lxml。在
然后可以使用
xpath
和getparent
来处理这个问题。在处理此查询的正确方法是使用XPATH:
^{pr2}$模式
//*[@bksetname="Default Backup Set"]
表示具有bksetname=“Default Backup Set”属性的所有元素。然后我们请求它的父元素并移除元素。在请注意我使用的是lxml而不是ElementTree。
您可以使用Free OnlineXpath tester检查
XPATH
你必须把它从你正在迭代的元素中移除。这里的
tr
是一个ElementTree
类型的对象。如果要从树中删除某个元素,可以从根元素中删除它。像这样:相关问题 更多 >
编程相关推荐