python elementtree-如何在xml中查找具有特定属性的所有元素
我有类似结构的xml:python elementtree-如何在xml中查找具有特定属性的所有元素,python,xml,elementtree,Python,Xml,Elementtree,我有类似结构的xml: <terms> <entry ID="1"> <language ID="1">en</language> <term>user</term> <state>text</state> <use>text</use> <definition ID="1">t
<terms>
<entry ID="1">
<language ID="1">en</language>
<term>user</term>
<state>text</state>
<use>text</use>
<definition ID="1">text</definition>
<subdefinition ID="1">text</subdefinition>
<definition-source>text</definition-source>
<source ID="1">text</source>
<circle>text</circle>
</entry>
EN
用户
文本
文本
文本
文本
文本
文本
文本
在这种情况下,父元素和子元素都包含属性ID。有没有办法,如何从包含属性ID的树中找到所有元素,并将值更改为0或删除它
我曾尝试使用XPath来实现这一点,但当存在较深的层次结构且任何元素都可以具有此属性时,这就很困难了。
另一种方法是将其作为字符串处理,但是在ElementTree中有没有这样做的方法?使用XPath
//*[@ID]
来选择元素应该相当容易
下面是一个将所有ID
值更改为0
的示例
XML输入(test.XML)
EN
用户
文本
文本
文本
文本
文本
文本
文本
Python
将xml.etree.ElementTree作为ET导入
tree=ET.parse(“test.xml”)
对于tree.findall(“.//*[@ID]”)中的元素:
元素属性[“ID”]=“0”
ET.dump(tree.getroot())
输出(转储到控制台)
EN
用户
文本
文本
文本
文本
文本
文本
文本
您应该看看这个: