[英]How to get all strings from all nested tags of a xml tag with python's lxml.etree library?
我有一个 xml 文件,其中可能会发生以下情况:
...
<a><b>This is</b> some text about <c>some</c> issue I have, parsing xml</a>
...
编辑:让我们假设,标签可以嵌套不止一个级别,这意味着
<a><b><c>...</c>...</b>...</a>
我使用 python lxml.etree 库想出了这个。
context = etree.iterparse(PATH_TO_XML, dtd_validation=True, events=("end",))
for event, element in context:
tag = element.tag
if tag == "a":
print element.text # is empty :/
mystring = element.xpath("string()")
...
但不知何故,它出错了。
我想要的是整个字符串
"This is some text about some issue I have, parsing xml"
但我只得到一个空字符串。 有什么建议么? 谢谢!
这个问题已经被问过很多次了。
您可以使用lxml.html.text_content()
方法。
import lxml.html
t = lxml.html.fromstring("...")
t.text_content()
REF: 过滤掉 HTML 标签并解析 python 中的实体
或使用lxml.etree.strip_tags()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.