Python 从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

从XML树中获取精确的第二个值的过程是什么

<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