-1

以下のような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 が同じ順序で値を返さない場合や、結果の数が 10,000 を超える場合にも注意してください。

4

2 に答える 2

0

これを試して:

$ xpath -e '//cat[id=2]/name' your.xml
于 2013-02-12T19:26:36.790 に答える
0

式を使用してモジュールを使用すると、これを簡単に実行できます。

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 チュートリアル

あなたの 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>
于 2013-02-12T19:14:50.713 に答える