[英]retrieving xml element value by searching the element by substring in its name
我需要通过名称中的 substring 搜索元素来检索 xml 元素值,例如。 我需要获取名称包含client
的 XML 文件中所有元素的值。
我找到了一种方法如何通过属性查找带有 xpath 的元素,但我还没有找到元素名称的方法。
如果您真的在使用 lxml(您的问题同时标记为 lxml 和 elementtree),则可以在谓词中使用 xpath function contains()
...
from lxml import etree
xml = """
<doc>
<client1>foo</client1>
<some_client>bar</some_client>
</doc>
"""
root = etree.fromstring(xml)
for elem in root.xpath("//*[contains(name(),'client')]"):
print(f"{elem.tag}: {elem.text}")
打印 output...
client1: foo
some_client: bar
ElementTree 仅支持有限的 xpath ,因此一种选择是使用.tag
属性检查元素的名称...
import xml.etree.ElementTree as etree
xml = """
<doc>
<client1>foo</client1>
<some_client>bar</some_client>
</doc>
"""
root = etree.fromstring(xml)
for elem in root.iter():
if "client" in elem.tag:
print(f"{elem.tag}: {elem.text}")
这会产生与上面相同的打印 output。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.