我有一个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"
但我只得到一个空字符串。有什么建议?谢谢!
答案 0 :(得分:2)
这个问题已被多次提出过。
您可以使用lxml.html.text_content()
方法。
import lxml.html
t = lxml.html.fromstring("...")
t.text_content()
参考:Filter out HTML tags and resolve entities in python
或使用lxml.etree.strip_tags()
方法。