【发布时间】:2020-05-04 01:28:13
【问题描述】:
我目前有一个我想用 Python 解析的 XML 文件。我正在使用 Python 的元素树,它工作正常,但我有一个问题。
文件目前看起来像:
<Instance>
<TextContent>
<Sentence>Hello, my name is John and his <Thing>name</Thing> is Tom.</Sentence>
</TextContent>
<Instance>
我基本上想要做的是跳过<Sentence> 标签内的嵌套标签(即<Thing>)。我发现这样做的一种方法是获取文本内容直到标签,标签的文本内容,并将它们连接起来。我正在使用的代码是:
import xml.etree.ElementTree as ET
xtree = ET.parse('some_file.xml')
xroot = xtree.getroot()
for node in xroot:
text_before = node[0][0].text
text_nested = node[0][0][0].text
- 如何获取嵌套标记之后的文本部分?
- 更好的是,有没有办法可以完全忽略嵌套标签?
提前致谢。
【问题讨论】:
-
</Thing>结束标记之后的文本部分(“是 Tom.”)是该元素的tail。见docs.python.org/3/library/… -
谢谢!我没有意识到这一点。不幸的是,嵌套标签不止一个,所以如果有办法完全忽略它们也会很有帮助,但似乎我将不得不手动写入规则。
-
试试
itertext(): stackoverflow.com/a/19370075/407651 -
您能否编辑您的问题以添加一个包含多个嵌套标签的示例 - 以及您想要的输出?
标签: python xml elementtree