為に:
<foo>
<bar key="value">text</bar>
</foo>
「価値」を得るには?
xml.findtext("./bar[@key]")
エラーをスローします。
為に:
<foo>
<bar key="value">text</bar>
</foo>
「価値」を得るには?
xml.findtext("./bar[@key]")
エラーをスローします。
これは、という名前の要素の最初のインスタンスを見つけ、bar
属性の値を返しますkey
。
In [52]: import xml.etree.ElementTree as ET
In [53]: xml=ET.fromstring(contents)
In [54]: xml.find('./bar').attrib['key']
Out[54]: 'value'
あなたの表現:
./バー[@キー]
意味:属性bar
を持つ子key
属性を選択する場合は、次の相対式を使用します。
bar/@key
意味:子供のkey
属性bar
もちろん、lxmlのような完全に準拠した XPath エンジンを使用することを検討する必要があります。