gpt4 book ai didi

python - 使用 xml.etree 解析 XML 的基本 Python - 问题

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

我正在尝试解析 XML,但遇到了困难。我不明白为什么结果一直在打印 [<Element 'Results' at 0x105fc6110>]我正在尝试提取 Social来 self 的示例

import xml.etree.ElementTree as ET
root = ET.parse("test.xml")
results = root.findall("Results")
print results #[<Element 'Results' at 0x105fc6110>]
# WHAT IS THIS??


for result in results:
print result.find("Social") #None

XML 看起来像这样:

<?xml version="1.0"?>
<List1>
<NextOffset>AAA</NextOffset>
<Results>
<R>
<D>internet.com</D>
<META>
<Social>
<v>http://twitter.com/internet</v>
<v>http://facebook.com/internet</v>
</Social>
<Telephones>
<v>+1-555-555-6767</v>
</Telephones>
</META>
</R>
</Results>
</List1>

最佳答案

findall 返回 xml.etree.ElementTree.Element 对象的列表。在您的情况下,您只有一个 Result 节点,因此您可以使用 find 来查找第一个/唯一匹配。

一旦你得到它,你必须使用 .// 语法来使用 find ,它允许在树中的任何地方搜索,而不仅仅是直接在 结果

一旦找到它,只需在 v 标签上findall 并打印文本:

import xml.etree.ElementTree as ET
root = ET.parse("test.xml")
result = root.find("Results")

social = result.find(".//Social")

for r in social.findall("v"):
print(r.text)

结果:

http://twitter.com/internet
http://facebook.com/internet

请注意,我没有对 xml 文件执行有效性检查。您应该检查 find 方法是否返回 None 并相应地处理错误。

请注意,尽管我对 xml 格式没有信心,但我通过遵循此 lxml tutorial 了解了我所知道的解析它的所有知识.

关于python - 使用 xml.etree 解析 XML 的基本 Python - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41352895/

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