繁体   English   中英

如何使用 python 的 lxml.etree 库从 xml 标签的所有嵌套标签中获取所有字符串?

[英]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()方法。

REF: 在 lxml 中,如何删除标签但保留所有内容?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM