直接检索里程碑中嵌套标签后的文本 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
我将 运行 转换为 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