从xmld获取第二个标记值

2024-04-28 18:06:59 发布

您现在位置:Python中文网/ 问答频道 /正文

从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

如何得到标签的唯一第二个值


Tags: in脚本idchildfordbobject过程
1条回答
网友
1楼 · 发布于 2024-04-28 18:06:59

这里

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

相关问题 更多 >