11

いくつかの属性を持つ XML<root>要素があります。ElementTreeパッケージを使用してきました。

xml ファイルからツリーを解析した後、ドキュメント ルートを取得していますが、要求された属性、または属性のリスト全体を取得したいと考えています。

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

<root>ElementTreeを使用して要素のすべての属性名と値を取得するにはどうすればよいですか?

4

3 に答える 3

33

それぞれがディクショナリで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']
于 2013-01-14T17:21:27.077 に答える
9

attribElementTree 要素の属性 ( によって返されるルートなどgetroot) はディクショナリです。たとえば、次のようにできます。

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

あなたの例では、これは出力されます

{'a': '1', 'b': '2', 'c': '3'}
于 2013-01-14T17:26:38.030 に答える
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
于 2013-09-23T07:55:31.770 に答える