【发布时间】:2014-10-16 11:46:00
【问题描述】:
我有一个 XML 文件,如下所示:
<tag1>
<tag2>
I am too good <italic>to be true</italic>
</tag2>
</tag1>
现在,当我想提取“tag2”标签中的数据时, 然后假设 XML 文件被读入“XML_data”变量:
XML_data.getElementsByTagName('tag1')[0].getElementsByTagName('tag2')[0].childNodes[0].data
evaluates to "I am too good"
and
XML_data.getElementsByTagName('tag1')[0].getElementsByTagName('tag2')[0].getElementsByTagName('italic')[0].childNodes[0].data
evaluates to "to be true"
我想要的是能够通过忽略斜体标签来提取 tag2 中的整个块。即,我希望我的输出是
"I am too good <italic>to be true</italic>"
我该怎么做?请帮忙。
【问题讨论】:
-
你不能 - 正如你的代码所暗示的那样,
<italic>文本是一个单独的节点。您必须决定哪些节点应算作“内联”并单独处理。 -
您与 minidom 库的关系如何? DOM API非常繁琐冗长;您可能想要使用 ElementTree API(也是 Python 标准库的一部分);它会让这项任务简单得多。
-
非常感谢。我懂了。我将尝试使用 ElementTree API。只是为了加快我的理解,如何使用 ElementTree API 做到这一点?
标签: python xml-parsing minidom