[英]How to delete a node from an XML document in Python using ElementTree
[英]How to query XML node using ElementTree in python
我有以下示例XML树:
<main>
<section>
<list key="capital" value="sydney">
<items>
<item id="abc-123"></item>
<item id="abc-345"></item>
</items>
</list>
<list key="capital" value="tokyo">
<items>
<item id="def-678"></item>
<item id="def-901"></item>
</items>
</list>
</section>
</maim>
您是否知道如何运行查询,该查询将使用key =“ capital”和value =“ tokyo”(应提取id =“ def-678”和id =“的项目节点)提取“ list”下的“ items”节点def-901“)?
非常感谢你的帮助!
您可以通过find()
或findall()
方法使用xml.etree
支持的XPath表达式(请参阅文档 ):
from xml.etree import ElementTree as ET
raw = '''your xml string here'''
root = ET.fromstring(raw)
result = root.findall(".//list[@key='capital'][@value='tokyo']/items/item")
控制台测试输出:
>>> for r in result:
... print ET.tostring(r)
...
<item id="def-678" />
<item id="def-901" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.