-1

我有一个xml文件:

<one>
 <a>sth</a>
 <b>sth</b>
 <c>sth</c>
</one>
<one>
 <a>x</a>
 <b>y</b>
 <c>z</c>
</one>

我想要的是使用 xml.dom 从 xml 中检索名称“a”、“b”、“c”,即节点“one”下的子节点

4

2 回答 2

3

退房xml.etree.ElementTree

http://docs.python.org/library/xml.etree.elementtree.html

于 2012-05-15T09:34:54.700 回答
0

XML 文件应该像这样的格式

<?xml version="1.0" ?>
<ones>
<one>
 <a>sth</a>
 <b>sth</b>
 <c>sth</c>
</one>
<one>
 <a>x</a>
 <b>y</b>
 <c>z</c>
</one>
</ones>

您可以尝试以下代码:

from xml.dom import minidom

xmldoc = minidom.parse('filePath')
root = xmldoc.documentElement

ones = root.getElementsByTagName('one')

L = []
for one in ones:
    m = {}
    #print onn.getElementsByTagName('a')[0].childNodes[0].nodeValue
    #print n.getElementsByTagName('b')[0].childNodes[0].nodeValue
    #print n.getElementsByTagName('c')[0].childNodes[0].nodeValue
    for n in one.childNodes:
         if n.nodeType == n.ELEMENT_NODE:
                 m[n.nodeName] =n.firstChild.nodeValue
    L.append(m)
于 2012-05-15T10:47:54.497 回答