gpt4 book ai didi

Python 在 XML 元素中搜索数据

转载 作者:行者123 更新时间:2023-11-28 22:56:22 24 4
gpt4 key购买 nike

我认为这适用于搜索“error”的标签值

import xml.etree.cElementTree as ET

xml = """
<tag1>
<tag2>
error
</tag2>
<tag3>
working
</tag3>
<tag4>
<tag5>
error
</tag5>
</tag4>
</tag1>
"""

for event, element in ET.fromstring(xml):
if element.text.strip() == "error":
print element.tag

我遇到了以下错误:

Traceback (most recent call last):
File "test.py", line 19, in <module>
for event, element in ET.fromstring(xml):
ValueError: need more than 0 values to unpack

“需要多于 0 个值才能解包”是什么意思?

最佳答案

遍历 Element 对象每次只产生一个元素,但您的循环需要两个值。您将 .fromstring().iterparse() 混淆了在这里。

你真的只需要.findall():

tree = ET.fromstring(xml)
for elem in tree.findall('.//*'):
if elem.text and elem.text.strip() == 'error':
print elem.tag

.iter(),它做同样的事情(遍历树中的所有元素):

tree = ET.fromstring(xml)
for elem in tree.iter():
if elem.text and elem.text.strip() == 'error':
print elem.tag

如果您真的想使用事件驱动程序iterparse,您需要提供一个文件对象:

from cStringIO import StringIO
for event, element in ET.iterparse(StringIO(xml)):
if element.text.strip() == "error":
print element.tag

所有片段打印:

tag2
tag5

关于Python 在 XML 元素中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817656/

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