4

私は持っています、

<parent id="1">
    <child id="white"></child>
    <child id="red"></child>
</parent>
<parent id="2">
    <child id="green"></child>
    <child id="gray"></child>
</parent>

この出力が必要です、

1 
 white
 red
2
 green
 gray

これが私がやっている方法です、

parent = xmldoc.getElementsByTagName('parent')
for item in parent:
    child = xmldoc.getElementsByTagName('child')
    child_id = child.getAttribute('id')
    for child_id in child:
        print child_id

もちろん、私はそれを間違えていますが、これらの親IDをループして、各リストを個別に収集する方法がわかりません。助けていただければ幸いです。

4

2 に答える 2

2

これを試して

import xml.dom.minidom as minidom

a = '<parent id="1"><child id="white"></child><child id="red"></child></parent>'
dom = minidom.parseString(a)

for parent in dom.childNodes:
    print parent.getAttribute('id')
    for child in parent.childNodes:
        print '  %s' % child.getAttribute('id')
于 2012-08-02T06:39:09.747 に答える
1

あなたはコードと構文を推測しているので:

import xml.dom.minidom

s =  """<?xml version="1.0"?>
<container>
<parent id="1">
    <child id="white"></child>
    <child id="red"></child>
</parent>
<parent id="2">
    <child id="green"></child>
    <child id="gray"></child>
</parent>
</container>
"""


xmldoc = xml.dom.minidom.parseString(s)

parent = xmldoc.getElementsByTagName('parent')
for item in parent:
    print item.getAttribute('id')
    for child in item.getElementsByTagName('child'):
        print child.getAttribute('id')
于 2012-08-02T06:42:17.493 に答える