我有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?
答案 0 :(得分:0)
您可以使用带有lxml表达式的xpath模块轻松完成此操作:
from lxml import etree
file = "file://path/to/file.xml"
doc = etree.parse(file)
print doc.xpath('//cat[id=2]/name/text()')[0]
您的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>
答案 1 :(得分:0)
试试这个:
$ xpath -e '//cat[id=2]/name' your.xml