用minidom解析xml

问题描述 投票:0回答:1

使用 Python,我尝试解析包含以下结构的 XML 文件:

<channel>
    <index>1</index>
    <values>
        <entry>
            <key>SRV_PARAM_CH_ENABLED</key>
            <value xsi:type="xs:boolean" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">false</value>
        </entry>
        <entry>
            <key>SW_PARAMETER_CH_LABEL</key>
        </entry>
    </values>
</channel>

如果 key 存在,如何获取 key

SRV_PARAM_CH_ENABLED
的值?

我正在使用

xml.dom.minidom
并且能够使用以下方式读取频道:

import xml.dom.minidom

xml_doc = xml.dom.minidom.parse(path)
root = xml_doc.documentElement

chns = xml_doc.getElementsByTagName('channel')

for chn in chns:
   idxx = chn.getElementsByTagName('index')
   idx = idxx[0].childNodes[0].data # Gets ch number

但在那之后我被难住了。

python xml minidom
1个回答
0
投票

如果您搜索关键标签的文本,您可以执行以下操作:

import xml.dom.minidom

xml_doc = xml.dom.minidom.parse("example.xml")
root = xml_doc.documentElement

keys = root.getElementsByTagName('key')

# all values in your example
for t in keys:
    print(t.firstChild.nodeValue)

# or only the firt element
print(keys[0].firstChild.nodeValue)

输出:

SRV_PARAM_CH_ENABLED
SW_PARAMETER_CH_LABEL

SRV_PARAM_CH_ENABLED

© www.soinside.com 2019 - 2024. All rights reserved.