使用Python XML ElementTree获取同类型XML元素的对应父元素
自动化获取XML元素的父元素
如果你用Python的xml.etree.ElementTree处理XML,完全可以自动化遍历所有
先看示例XML结构:
<root> <Z> <C id="1"/> </Z> <D> <C id="2"/> </D> </root>
实现代码
import xml.etree.ElementTree as ET # 解析XML文件(如果是字符串内容,改用ET.fromstring()) tree = ET.parse('your_xml_file.xml') root = tree.getroot() # 遍历所有<C>元素 for c_element in root.iter('C'): # 获取父元素:Python 3.7及更早版本用getparent(),3.8+直接用parent属性 parent_element = c_element.getparent() # 输出结果 print(f"id为{c_element.get('id')}的<C>元素,父元素标签是{parent_element.tag}")
关键说明
root.iter('C')会递归遍历整个XML树,自动找到所有元素,无需逐个指定id - 每个元素的
getparent()(或Python 3.8+的parent属性)直接返回其父节点对象,通过tag属性就能拿到父元素的标签名 - 若使用
lxml库(功能更丰富的XML处理工具),写法逻辑一致,getparent()方法全程可用,还支持更复杂的XPath查询
内容的提问来源于stack exchange,提问作者JME
相关产品推荐
相关产品推荐

