Python 从xml数据中获取第二个标记值
从XML树中获取精确的第二个值的过程是什么Python 从xml数据中获取第二个标记值,python,xml,xml-parsing,elementtree,Python,Xml,Xml Parsing,Elementtree,从XML树中获取精确的第二个值的过程是什么 <Dbtag> <Dbtag_db>HGNC</Dbtag_db> <Dbtag_tag> <Object-id> <Object-id_str>HGNC:7</Object-id_str> </Object-id> </Dbtag_tag> </Dbtag&g
<Dbtag>
<Dbtag_db>HGNC</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>HGNC:7</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag>
<Dbtag>
<Dbtag_db>Ensembl</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>ENSG00000175899</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag>
我得到的输出是
HGNC:7
ENSG0000175899
如何在此处仅获取tag的第二个值
import xml.etree.ElementTree as ET
xml = '''<r><Dbtag>
<Dbtag_db>HGNC</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>HGNC:7</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag>
<Dbtag>
<Dbtag_db>Ensembl</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>ENSG00000175899</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag></r>'''
root = ET.fromstring(xml)
sec_id = root.findall('.//Object-id_str')[1].text
print(sec_id)
findall()
返回一个列表。只需获取列表中的第二项。
import xml.etree.ElementTree as ET
xml = '''<r><Dbtag>
<Dbtag_db>HGNC</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>HGNC:7</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag>
<Dbtag>
<Dbtag_db>Ensembl</Dbtag_db>
<Dbtag_tag>
<Object-id>
<Object-id_str>ENSG00000175899</Object-id_str>
</Object-id>
</Dbtag_tag>
</Dbtag></r>'''
root = ET.fromstring(xml)
sec_id = root.findall('.//Object-id_str')[1].text
print(sec_id)
ENSG00000175899