所以,如果我有以下标签:
<ana lex="ун" morph="ың" gr="NUM,poss.2sg" trans="десять" />
我想提取的不仅仅是值,更具体地说是属性的名称。我已经尝试过像这样使用名称函数(其中ana是上面的标记):
at_names = ana.xpath('name(@*)')
但是,这只返回第一个属性名称'lex'。我怎样才能获得标签中所有属性名称的列表?
答案 0 :(得分:2)
您只需致电.items
即可获取姓名和价值:
In [3]: import lxml.etree as et
In [4]: x = et.fromstring("""<ana lex="ун" morph="ың" gr="NUM,poss.2sg" trans="десять" />""")
In [5]: x.attrib
Out[5]: {'trans': 'десять', 'lex': 'ун', 'gr': 'NUM,poss.2sg', 'morph': 'ың'}
In [6]: x.items()
Out[6]: [('lex', 'ун'), ('morph', 'ың'), ('gr', 'NUM,poss.2sg'), ('trans', 'десять')]
或者只是.key来获取名称:
In [7]: x.keys()
Out[7]: ['lex', 'morph', 'gr', 'trans']