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

0 投票
1 回答
966 浏览
提问于 2025-04-27 22:25

我有一个看起来像这样的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)

撰写回答