簡體   English   中英

從ElementTree獲取屬性名稱和值

[英]Get attribute names and values from ElementTree

我有一個帶有多個屬性的XML <root>元素。 我一直在使用ElementTree包。

在我從xml文件中解析了一個樹之后,我得到了文檔根目錄,但我希望得到所請求的屬性,甚至是整個屬性列表。

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

如何使用ElementTree檢索<root>元素的所有屬性名稱和值?

每個Element都有一個屬性.attrib ,它是一個字典; 只需使用它的映射方法來詢問它的鍵或值:

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

要么

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

或者使用.values()或python dict上可用的任何其他方法。

要獲取單個屬性,請使用標准訂閱語法

print root.attrib['a']

ElementTree元素的attrib屬性(如getroot返回的根)是一個字典。 所以你可以這樣做,例如:

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

對於你的例子,它將輸出

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

你可以使用它的一些好的循環將獲得xmlObject的每個元素它的標簽,文本和屬性它將適用於2級XML,它不是迭代的最佳方式,但它對簡單的事情有用...

for headTag in xmlObject.getchildren():
    print headTag.tag, headTag.text, headTag.attrib
    for bodyTag in headTag.getchildren():
        print "\t", bodyTag.tag, bodyTag.text, bodyTag.attrib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM