2024-10-01 00:19:12 发布
网友
我有如下的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?你知道吗
试试这个:
$ xpath -e '//cat[id=2]/name' your.xml
使用带有xpath表达式的lxml模块,您可以很容易地做到这一点:
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>
试试这个:
使用带有xpath表达式的lxml模块,您可以很容易地做到这一点:
见http://lxml.de/
和Xpath tutorial
您的XML文件无效,此文件应为:
相关问题 更多 >
编程相关推荐