2017-06-20 5 views
2
<student id="1" student:name="robert"> 
<sectionA> 
    <class name="first"/> 
</sectionA> 
</student> 
<student id="2" student:name="lucky"> 
<sectionB> 
    <class name="first"/> 
</sectionB> 
</student> 
<student id="2" student:name="Dave"> 
<sectionA> 
    <class name="third"/> 
</sectionA> 
</student> 


from xml.dom import minidom 

dom1 = minidom.parse("file.xml") 
student = dom1.getElementsByTagName("student") 
for b in student: 
    sectionA = dom1.getElementsByTagName("sectionA") 
    for a in sectionA: 
     name = b.getAttribute("student:name") 
     print name 

これは私に次のように出力できます:この行で ロバート デイブPythonのminidom XMLパーサー3

答えて

0

:私は次の出力 予想される出力を期待していしかし ロバート ラッキーデイブ

を:

student = dom1.getElementsByTagName("student") 

実際にgすべてのアイテムとその後、常に何かが存在するagetAttributeからbにしようとしました!なぜb?その後、

student = dom1.getElementsByTagName("sectionA") 

そしてparentNodeと属性を取得:

おそらく最後forはあなたが使用することができ、完全に必要ありません!

あなたが例えばparentNode()を使用することができ、あなたがこのようにコードを変更することができます。

from xml.dom import minidom 

dom1 = minidom.parse("file.xml") 
student = dom1.getElementsByTagName("sectionA") 

for b in student: 
    print(b.parentNode.getAttribute("name")) 

# Output: 
# robert 
# Dave 

参考:xml.de

+0

おかげ それは:)働いていました – wrdw