我在从 xml 文件中提取文本时遇到问题,但我的代码不允许我获得我期望获得的内容。
这是部分代码。
root = etree.fromstring(xml)
titles = root.findall('title')
title = titles[0]
print(title.tag)
print(title.text) # <-- this line is supposed to get title's text
这是我测试过的示例 XML 文件。
<root>
<title>
<indexmarker marker="AAA"/>
<indexmarker marker="BBB"/>
<indexmarker marker="CCC"/>Text Here
</title>
</root>
任何人都可以帮助我如何修改代码,以便 title.text 提取文本而不更改 xml 文件本身的结构?
我尝试了以下测试,但似乎没有一个有帮助
要获取
"Text Here"
字符串,您可以使用 tag.itertext()
:
from lxml import etree
xml_content = """
<root>
<title>
<indexmarker marker="AAA"/>
<indexmarker marker="BBB"/>
<indexmarker marker="CCC"/>Text Here
</title>
</root>
"""
root = etree.fromstring(xml_content)
last_text = list(root.find("./title").itertext())[-1].strip()
print(last_text)
打印:
Text Here