XML を解析して特定のノード属性のインスタンスを取得するにはどうすればよいでしょうか? 質問する

XML を解析して特定のノード属性のインスタンスを取得するにはどうすればよいでしょうか? 質問する

XML に多くの行があり、特定のノード属性のインスタンスを取得しようとしています。

<foo>
   <bar>
      <type foobar="1"/>
      <type foobar="2"/>
   </bar>
</foo>

属性 の値にアクセスするにはどうすればよいですかfoobar? この例では、 および が必要"1"です"2"

ベストアンサー1

私は提案しますElementTree同じAPIの互換性のある実装としては、次のようなものがあります。lxml、そしてcElementTreePython 標準ライブラリ自体にも存在しますが、このコンテキストでは、主に追加されるのはさらなる速度です。プログラミングの容易さの部分は、定義する API に依存しますElementTree

rootまずXMLから要素インスタンスを構築します。例えば、テキスト関数を使用するか、次のようなファイルで解析します。

import xml.etree.ElementTree as ET
root = ET.parse('thefile.xml').getroot()

または、他の多くの方法のいずれかでElementTree. 次に、次のような操作を行います。

for type_tag in root.findall('bar/type'):
    value = type_tag.get('foobar')
    print(value)

出力:

1
2

おすすめ記事