繁体   English   中英

Python ElementTree - Select 基于属性值的嵌套 xml 元素

[英]Python ElementTree - Select a nested xml element based on the value of an attribute

我正在尝试 select 基于属性值的嵌套元素

from xml.etree import ElementTree as ET

xml = '''<?xml version="1.0" encoding="UTF-8"?>
    <Report>
        <h1>
            <h2>
                <Element name='Bob' age='32' title='President'></Element>
                <Element name='Sue' age='25' title='Vice-President'></Element>
                <Element name='Mary' age='44' title='Secretary'></Element>
            </h2>
        </h1>
    </Report>'''

root = ET.fromstring(xml)

element = root.findall("//*[@title='President']")

但是我得到以下元素变量赋值错误

SyntaxError: cannot use absolute path on element

如何仅提取 President 元素的属性数据?

你非常亲密:-)

下面的作品 - 看看 xpath 中的点..

xml = '''<?xml version="1.0" encoding="UTF-8"?>
    <Report>
        <h1>
            <h2>
                <Element name='Bob' age='32' title='President'></Element>
                <Element name='Sue' age='25' title='Vice-President'></Element>
                <Element name='Mary' age='44' title='Secretary'></Element>
            </h2>
        </h1>
    </Report>'''

root = ET.fromstring(xml)
elements = root.findall(".//*[@title='President']")
print(elements)

这是你要找的吗?

from xml.etree import ElementTree as ET

xml = '''<?xml version="1.0" encoding="UTF-8"?>
    <Report>
        <h1>
            <h2>
                <Element name='Bob' age='32' title='President'></Element>
                <Element name='Sue' age='25' title='Vice-President'></Element>
                <Element name='Mary' age='44' title='Secretary'></Element>
            </h2>
        </h1>
    </Report>'''


root = ET.fromstring(xml)
elements = root.findall(".//*[@title='President']")
for i in elements:
    print(i.attrib['name'], i.attrib['age'], i.attrib['title'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM