2024-09-30 22:20:03 发布
网友
致:
<foo> <bar key="value">text</bar> </foo>
我如何获得“价值”?
xml.findtext("./bar[@key]")
抛出错误。
这将找到名为bar的元素的第一个实例,并返回属性key的值。
bar
key
In [52]: import xml.etree.ElementTree as ET In [53]: xml=ET.fromstring(contents) In [54]: xml.find('./bar').attrib['key'] Out[54]: 'value'
你的表情:
./bar[@key]
意思是:bar具有key属性
如果要选择属性,请使用此相对表达式:
bar/@key
意思是:子代的bar属性
当然,您需要考虑使用完全兼容的XPath引擎,如lxml。
使用ElementTree在XML中获取子标记的属性值
解析XML文件并获取root标记,然后使用[0]将给出第一个子标记。类似地,[1], [2]给出了后续的子标记。获取子标记后,使用.attrib[attribute_name]获取该属性的值。
root
[0]
[1], [2]
.attrib[attribute_name]
>>> import xml.etree.ElementTree as ET >>> xmlstr = '<foo><bar key="value">text</bar></foo>' >>> root = ET.fromstring(xmlstr) >>> root.tag 'foo' >>> root[0].tag 'bar' >>> root[0].attrib['key'] 'value'
如果xml内容在文件中。您应该执行以下任务以获取root。
>>> tree = ET.parse('file.xml') >>> root = tree.getroot()
这将找到名为
bar
的元素的第一个实例,并返回属性key
的值。你的表情:
意思是:
bar
具有key
属性如果要选择属性,请使用此相对表达式:
意思是:子代的
bar
属性当然,您需要考虑使用完全兼容的XPath引擎,如lxml。
使用ElementTree在XML中获取子标记的属性值
解析XML文件并获取
root
标记,然后使用[0]
将给出第一个子标记。类似地,[1], [2]
给出了后续的子标记。获取子标记后,使用.attrib[attribute_name]
获取该属性的值。如果xml内容在文件中。您应该执行以下任务以获取
root
。相关问题 更多 >
编程相关推荐