You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XML ElementTree获取XML父元素的方法

访问XML元素父元素的便捷方法

不同的XML解析工具或编程语言都有直接或间接获取父元素的便捷方式,以下是几种常见场景的实现:

  • 浏览器JavaScript环境(DOM API)
    浏览器原生的XML DOM元素自带parentNode属性,直接调用就能拿到父元素:

    // 获取id为254的B元素
    const bElement = document.querySelector('B[id="254"]');
    const parentA = bElement.parentNode; // 得到A元素
    
    // 获取Z元素的父元素B
    const zElement = document.querySelector('Z');
    const parentB = zElement.parentNode; // 得到B元素
    
  • Python的xml.etree.ElementTree库
    这个标准库的元素对象提供getparent()方法,可直接获取父元素:

    import xml.etree.ElementTree as ET
    
    xml_str = '''<A>
       <B id="254">
          <Z>12.34</Z>
          <C>Lore</C>
          <D>9</D>
       </B>
    </A>'''
    
    root = ET.fromstring(xml_str)
    b_elem = root.find('.//B[@id="254"]')
    parent_a = b_elem.getparent() # 获取A元素
    
    z_elem = b_elem.find('Z')
    parent_b = z_elem.getparent() # 获取B元素
    
  • XPath通用语法
    几乎所有支持XPath的XML解析工具,都可以用..表示当前节点的父节点,直接通过XPath表达式查询:

    • 要获取B元素的父元素,XPath表达式://B[@id="254"]/..
    • 要获取Z元素的父元素,XPath表达式://Z/..

    以Python的lxml库为例:

    from lxml import etree
    
    xml_str = '''<A>
       <B id="254">
          <Z>12.34</Z>
          <C>Lore</C>
          <D>9</D>
       </B>
    </A>'''
    
    tree = etree.fromstring(xml_str)
    parent_a = tree.xpath('//B[@id="254"]/..')[0] # 得到A元素
    parent_b = tree.xpath('//Z/..')[0] # 得到B元素
    

内容的提问来源于stack exchange,提问作者JME

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:07:15