在Python中获取XML属性?
例如,我有以下XML文件: 在每个短语中,我总是有2个在Python中获取XML属性?,python,xml,python-2.7,python-3.x,Python,Xml,Python 2.7,Python 3.x,例如,我有以下XML文件: 在每个短语中,我总是有2个标记,x属性是PERS、LOC或ORG。 我想做的是获取所有的对,其中它们只是组织和人员 XML示例: <PHRASE> <N y='0'> back</N> <en x='PERS'>John</en> <PREP>to</PREP> <en x='LOC'>New York</en> </PHRASE> 如果要查找特殊
标记,x
属性是PERS、LOC或ORG。我想做的是获取所有的
对,其中它们只是组织和人员
XML示例:
<PHRASE>
<N y='0'> back</N>
<en x='PERS'>John</en>
<PREP>to</PREP>
<en x='LOC'>New York</en>
</PHRASE>
如果要查找特殊短语,必须迭代短语并测试它们以满足以下条件:
for phrase in root.findall('./PHRASE'):
ens = {en.get('x'): en.text for en in phrase.findall('en')}
if 'ORG' in ens and 'PERS' in ens:
print("ORG is: {}, PERS is: {}".format(ens["ORG"], ens["PERS"]))
你不必重复所有的短语。在第一个en
的x属性为PERS
且第二个en
的x属性为LOC
的情况下,使用的幂函数过滤掉短语
元素:
root.xpath(".//PHRASE[en[1]/@x = 'PERS' and en[2]/@x = 'LOC']")
假设您正在使用
root.xpath(".//PHRASE[en[1]/@x = 'PERS' and en[2]/@x = 'LOC']")