介绍python的Xpath的python开元项目:
安装:下载对应python版本的软件包à解压àpython setup.py install例一:import libxml2def text() :doc = libxml2.parseFile('/tmp/books.xml')for book in doc.xpathEval('/bookstore/book') :print book.contentdoc.freeDoc()例二import libxml2doc = libxml2.parseFile('/tmp/books.xml')doc.xpathEval('/bookstore/book[1]/price + /bookstore/book[1]/price ')doc.xpathEval('/bookstore/book[2]/price < 0')doc.freeDoc()例三import libxml2doc = libxml2.parseFile('/tmp/books.xml')doc.xpathEval('child::book') #返回的结果是什么?为什么doc.xpathEval('child::bookstore')doc.xpathEval('descendant::bookstore')doc.freeDoc()例四:import libxml2doc = libxml2.parseFile('/tmp/books.xml')doc.xpathEval('/bookstore/book[price>35.00]')[0].contentdoc.xpathEval('/bookstore/book[last()]')doc.freeDoc()
2.Google的开源项目,python官方网站上推荐的xpath项目,版本为0.1
安装:下载软件包à解压àpython setup.py install例一import xpathimport xml.dom.minidomxml = xml.dom.minidom.parse('/tmp/books.xml')doc = xml.documentElementxpath.find('/bookstore/book[1]', doc)[0].toxml()xpath.find('/bookstore', doc)例二import xpathimport xml.dom.minidomxml = xml.dom.minidom.parse('/tmp/books.xml')doc = xml.documentElementcontext = xpath.XPathContext()context.variables['max'] = 100context.variables['min'] = 4context.findvalues('//book[price>=$min and price<=$max]', doc)还可以根据命名空间查询详细参考文档:http://py-dom-xpath.googlecode.com/svn/trunk/doc/index.html3.用python中自带的库解析xmlfrom xml.etree import ElementTree as XmlTreexmlDoc = XmlTree.parse('/tmp/books.xml')xmlRoot = xmlDoc.getroot()value = xmlRoot.find('book/price').textprint value