Python minidom XML解析器 - 忽略子标签

时间:2014-10-16 11:46:01

标签: python xml-parsing minidom

我有一个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 :(得分: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)