私のXMLは次のようになります。
...
<termEntry id="c1">
<langSet xml:lang="de">
...
そして私はコードを持っています:
from lxml import etree
...
for term_entry in root.iterfind('.//termEntry'):
print term_entry.attrib['id']
print term_entry.nsmap
for lang_set in term_entry.iterfind('langSet'):
print lang_set.nsmap
print lang_set.attrib
for some_stuff in lang_set.iterfind('some_stuff'):
...
空のnsmapdictを取得し、attribdictは次のようになります。{'{http://www.w3.org/XML/1998/namespace}lang': 'en'}
ファイルが名前空間に含まxml:
れていないか、別の名前空間を持っている可能性があります。タグ宣言で使用されている名前空間を知るにはどうすればよいですか?実際、属性を取得するだけで、lang
どの名前空間が使用されたかは関係ありません。lang_set.attrib.values()[0]
既知の名前のフィールドのようなくだらないゴミや他のルックアップを使用したくありません。