gpt4 book ai didi

python - 为什么 etree.find 找不到所提供示例的元素

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:21 28 4
gpt4 key购买 nike

让我们假设它有这个:

xml_as_str = '''
<v1:Header>
<v2:Person>Foo Bar</v2:Person>
<v2:Email>foo@bar.com</v2:Email>
</v1:Header>
'''

from lxml import etree
tree = etree.fromstring(xml_as_str, etree.XMLParser(recover=True))

它如何获取特定标签的值,例如 v2:Person 的“Foo Bar”?

我已经试过了:

 >> tree.find('.//v2:Person')
>> tree.find('.//{Person}v2')

为了得到元素然后.text,但是.find找不到元素,为什么?

最佳答案

使用 local-name() xpath 函数:

>>> xml_as_str = '''
... <v1:Header>
... <v2:Person>Foo Bar</v2:Person>
... <v2:Email>foo@bar.com</v2:Email>
... </v1:Header>
... '''
>>>
>>> from lxml import etree
>>> tree = etree.fromstring(xml_as_str, etree.XMLParser(recover=True))
>>> tree.xpath('//*[local-name()="v2:Person"]/text()')[0]
'Foo Bar'

关于python - 为什么 etree.find 找不到所提供示例的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26803895/

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