直接检索里程碑中嵌套标签后的文本 XML

Directly retrieving text after nested tags in milestone XML

我将 运行 转换为 XML 类型(有时称为 "milestone"),该类型的标签嵌套在元素文本的中间。这对于解析科学论文 PDF 非常有用,尽管我已经看到它没有遵循一些 XML 格式指南。在一个简化的例子中:

<data>foo <ref>[1]</ref> bar</data>

使用 Element Tree 我似乎无法获得文本的第二部分(通常可能有多个部分有很多引用),甚至看到这段文本的唯一方法是在上使用 itertext() 函数元素 "data",但这也是参考元素中的文本 returns,我不需要它。有没有办法专门获取 "foo bar" 或以某种方式访问​​它们?

明确一点,尾部是空的,而且我需要它来处理以类似方式插入的多个引用。

"foo " 是 <data>text。 “bar”是 <ref>tail

from xml.etree import ElementTree as ET

data = ET.fromstring("<data>foo <ref>[1]</ref> bar</data>")
ref = data.find("ref")
print(data.text + ref.tail)

输出:

foo  bar