2012-10-22 5 views
0

다음 데이터가있는 XML이 있습니다. 나는 다른 모든 속성의 가치를 얻을 필요가있다. 거기에 파이썬 코드를 반환하면 첫 번째 드라이버 값만 얻습니다.XML을 통해 반복하여 모든 자식 노드를 가져옵니다. 텍스트 값

내 XML :

<volume name="sp" type="span" operation="create"> 
    <driver>HDD1</driver> 
    <driver>HDD2</driver> 
    <driver>HDD3</driver> 
    <driver>HDD4</driver> 
</volume> 

내 스크립트를

import xml.etree.ElementTree as ET 
doc = ET.parse("vol.xml") 
root = doc.getroot() #Returns the root element for this tree. 
root.keys()   #Returns the elements attribute names as a list. The names are returned in an arbitrary order 
root.attrib["name"] 
root.attrib["type"] 
root.attrib["operation"] 

print root.get("name") 
print root.get("type") 
print root.get("operation") 

for child in root: 
    #print child.tag, child.attrib 
    print root[0].text 

내 출력 :

sr-query:~# python volume_check.py aaa 
    sp 
    span 
    create 
    HDD1 
    sr-queryC:~# 

내가 HDD2, HDD3HDD4를 얻을 수 없습니다. 이 XML을 통해 모든 값을 얻기 위해 itirate하는 법? 어떤 최적화 된 방법? 모든 for 루프는 그렇게 할 수 있지만 파이썬에는 익숙하지 않다고 생각합니다. 당신의 for 루프에서

답변

4

, 그것은

child.text 

하지

root[0].text 
+0

감사의 작동해야한다 .. –

관련 문제