いくつかの属性を持つ XML<root>
要素があります。ElementTree
パッケージを使用してきました。
xml ファイルからツリーを解析した後、ドキュメント ルートを取得していますが、要求された属性、または属性のリスト全体を取得したいと考えています。
<root a="1" b="2" c="3">
</blablabla>
</root>
<root>
ElementTreeを使用して要素のすべての属性名と値を取得するにはどうすればよいですか?
いくつかの属性を持つ XML<root>
要素があります。ElementTree
パッケージを使用してきました。
xml ファイルからツリーを解析した後、ドキュメント ルートを取得していますが、要求された属性、または属性のリスト全体を取得したいと考えています。
<root a="1" b="2" c="3">
</blablabla>
</root>
<root>
ElementTreeを使用して要素のすべての属性名と値を取得するにはどうすればよいですか?
それぞれがディクショナリで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']
attrib
ElementTree 要素の属性 ( によって返されるルートなど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