簡體   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