从 xml 数据中获取第二个标签值

Get the second tag value from xml data

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

我使用以下脚本来获取值。

for child in root.findall('Dbtag/Dbtag_tag/Object-id/Object-id_str'):
        print(child.text)

我得到的输出是

HGNC:7

ENSG00000175899

如何获取标签的唯一第二个值

这里

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