获取xml标记中的属性的键和值

时间:2016-06-19 17:01:05

标签: python xml xpath tags lxml

所以,如果我有以下标签:

<ana lex="ун" morph="ың" gr="NUM,poss.2sg" trans="десять" />

我想提取的不仅仅是值,更具体地说是属性的名称。我已经尝试过像这样使用名称函数(其中ana是上面的标记):

 at_names = ana.xpath('name(@*)')

但是,这只返回第一个属性名称'lex'。我怎样才能获得标签中所有属性名称的列表?

1 个答案:

答案 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']