在Python的ElementT中提取标签后的文本

2024-04-19 13:14:25 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是XML的一部分:

<item><img src="cat.jpg" /> Picture of a cat</item>

提取标签很容易。只要做:

et = xml.etree.ElementTree.fromstring(our_xml_string)
img = et.find('img')

但是如何在它之后立即获取文本(猫的图片)?执行以下操作将返回空字符串:

print et.text

Tags: ofsrcimgour标签xmlitemet
1条回答
网友
1楼 · 发布于 2024-04-19 13:14:25

元素有一个tail属性——所以您需要的不是element.text,而是element.tail

>>> import lxml.etree
>>> root = lxml.etree.fromstring('''<root><foo>bar</foo>baz</root>''')
>>> root[0]
<Element foo at 0x145a3c0>
>>> root[0].tail
'baz'

或者,举个例子:

>>> et = lxml.etree.fromstring('''<item><img src="cat.jpg" /> Picture of a cat</item>''')
>>> et.find('img').tail
' Picture of a cat'

这也适用于普通元素树:

>>> import xml.etree.ElementTree
>>> xml.etree.ElementTree.fromstring(
...   '''<item><img src="cat.jpg" /> Picture of a cat</item>'''
... ).find('img').tail
' Picture of a cat'

相关问题 更多 >