2013-01-14 18 views
8

için öznitelik adlarını ve değerlerini alın Bazı özniteliklere sahip bir XML <root> öğem var. ElementTree paketini kullanıyorum.ElementTree

Bir xml dosyasından bir ağacı ayrıştırdıktan sonra, belge kökünü alıyorum, ancak istenen özniteliği veya tüm öznitelik listesini almak istiyorum.

<root a="1" b="2" c="3"> 
    </blablabla> 
</root> 

nasıl tüm elementtree ile <root> elemanı için öznitelik adları ve değerleri alabilir?

cevap

13

Her Element bir dile sahip .attrib bir sözlüktür; basitçe onu en anahtarlar veya değerler için bunu sormak mapping methods var kullanın:

for name, value in root.attrib.items(): 
    print '{0}="{1}"'.format(name, value) 

veya

for name in root.attrib: 
    print '{0}="{1}"'.format(name, root.attrib[name]) 

veya piton dict üzerinde .values() veya diğer yöntemlerden birini kullanılabilir kullanmak

.

bireysel niteliğini elde etmek için, standart subscription syntax kullanın:

print root.attrib['a'] 
4

bir elementtree elemanın attrib özniteliği (getroot tarafından döndürülen kök gibi) bir sözlüktür. Yani örneğin, yapabilirsiniz:

from xml.etree import ElementTree 
tree = ElementTree.parse('test.xml') 
root = tree.getroot() 
print root.attrib 

hangi çıktısı, sizin örnek

{'a': '1', 'b': '2', 'c': '3'} 
1

Eğer xmlObject her bir öğesi için alacak kullanabilirsiniz Bazı güzel döngü etiketin, metin ve nitelik var için 2 düzey XML için çalışacaktır, yinelemenin en iyi yolu değildir, ancak basit şeyler için yararlı olabilir ...

İlgili konular