在Python的ElementTree中的标记后提取文本 [英] Extracting text after tag in Python's ElementTree
本文介绍了在Python的ElementTree中的标记后提取文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是XML的一部分:
<item><img src="cat.jpg" /> Picture of a cat</item>
提取标记很容易。只需做:
Extracting the tag is easy. Just do:
et = xml.etree.ElementTree.fromstring(our_xml_string)
img = et.find('img')
但是如何立即获取文本(猫的图片)?执行以下操作将返回一个空字符串:
But how to get the text immediately after it (Picture of a cat)? Doing the following returns a blank string:
print et.text
推荐答案
元素具有 tail
属性-而不是 element.text
,您要的是 element.tail
。
Elements have a tail
attribute -- so instead of element.text
, you're asking for 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'
这篇关于在Python的ElementTree中的标记后提取文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文