如何使用python打印特定的xml值?

2024-10-01 00:19:12 发布

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

我有如下的xml

<api>
<apicat>
    <cat>
        <id>1</id>
        <name>testname</name>
    </cat>
    <cat>
        <id>2</id>
        <name>testname2</name>
    </cat>
    <cat>
        <id>3</id>
        <name>testname3</name>
    </cat>
</apicat>

如何打印id=2的名称? 另外请注意,如果xml没有以相同的顺序返回值,并且如果结果数大于10000?你知道吗


Tags: name名称apiid顺序xmlcat返回值
2条回答

试试这个:

$ xpath -e '//cat[id=2]/name' your.xml

使用带有表达式的模块,您可以很容易地做到这一点:

from lxml import etree

file = "file://path/to/file.xml"
doc = etree.parse(file)

print doc.xpath('//cat[id=2]/name/text()')[0]

http://lxml.de/

Xpath tutorial

您的XML文件无效,此文件应为:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<api>
    <apicat>
        <cat>
            <id>1</id>
            <name>testname</name>
        </cat>
        <cat>
            <id>2</id>
            <name>testname2</name>
        </cat>
        <cat>
            <id>3</id>
            <name>testname3</name>
        </cat>
    </apicat>
</api>

相关问题 更多 >