gpt4 book ai didi

不同层次的 Python XML 解析

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:59 26 4
gpt4 key购买 nike

我正在尝试使用 Python 在不同级别解析具有相同名称标签的 XML。我通过文档和其他 StackOverflow 答案进行了大量搜索,但找不到合适的解决方案。

XML 看起来像这样:

<configuration>
<applications>
<application>
<name>name1</name>
<protocol>protocol1</protocol>
<port>port1</port>
</application>
<application>
.
</application>
<application-set>
<name>appset_name1</name>
<application>
<name>appname1</name>
</application>
</application-set>
<application-set>
.
</application-set>
</applications>
</configuration>

我需要从第 3 级的应用程序标签中获取名称、协议(protocol)和端口,并从第 3 级的应用程序集标签中获取名称和其他应用程序名称(可以在一个简单的列表中)

谢谢

最佳答案

随着ElementTree API您只需查找 .//application XPath 查找 <application>任何级别的元素:

for application in tree.findall('.//application'):
name = application.find('name').text
protocol = application.find('protocol')
if protocol is not None:
protocol = protocol.text
port = application.find('port')
if port is not None:
port = port.text

XPath 表达式也可以通过指定适用的父级在更具体的级别上找到您的标签:

'.//applications/application'     # any <application> tag below <applications>
'.//application-set/application' # any <application> tag below <applications>
'./*/*/application' # <application> tags with two elements in between

关于不同层次的 Python XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15745418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com