lxml 元素的文本未显示

问题描述 投票:0回答:1

我在从 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 文件本身的结构?

我尝试了以下测试,但似乎没有一个有帮助

  • 打印(标题)
  • 打印(标题.属性)
  • 打印(标题.items())
  • 打印(标题.values())
python xml parsing lxml elementtree
1个回答
0
投票

要获取

"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
© www.soinside.com 2019 - 2024. All rights reserved.