我的 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'):
...
我得到空的 nsmap 字典,我的属性字典看起来像{'{http://www.w3.org/XML/1998/namespace}lang': 'en'}
该文件可能不包含xml:
在命名空间中,或者它可能具有不同的命名空间。我如何知道标签声明中使用的命名空间?事实上,我只需要获取一个lang
属性,我不在乎使用了什么命名空间。我不想使用任何蹩脚的垃圾lang_set.attrib.values()[0]
或其他具有已知名称的字段的查找。