Python minidom XML 解析器 - 忽略子标签
我有一个看起来像这样的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>"
我该怎么做呢?请帮帮我。
1 个回答
0
最后使用了 ElementTree
import xml.etree.ElementTree as ET
import re
def extractTextFromElement(elementName, stringofxml):
tree = ET.fromstring(stringofxml)
for child in tree.getiterator():
if child.tag == elementName:
len = ET.tostring(child)
return re.sub(r'<.*?>', '', len)
usage: extractTextFromElement('tag2', XML_data)