2024-05-21 00:11:12 发布
网友
lxml package支持xpath。虽然我在self::axis上遇到了一些问题,但它似乎工作得很好。也有Amara,但我没有亲自使用过。
libxml2有许多优点:
缺点包括:
如果您正在进行简单的路径选择,请使用ElementTree(包含在Python 2.5中)。如果您需要完全符合规范或原始速度,并且能够处理本机代码的分发,请使用libxml2。
libxml2xpath使用示例
import libxml2 doc = libxml2.parseFile("tst.xml") ctxt = doc.xpathNewContext() res = ctxt.xpathEval("//*") if len(res) != 2: print "xpath query: wrong node set size" sys.exit(1) if res[0].name != "doc" or res[1].name != "foo": print "xpath query: wrong node set value" sys.exit(1) doc.freeDoc() ctxt.xpathFreeContext()
元素树XPath使用示例
from elementtree.ElementTree import ElementTree mydoc = ElementTree(file='tst.xml') for e in mydoc.findall('/foo/bar'): print e.get('title').text
听起来像是lxml广告。;)元素树包含在std库中。在2.6及以下版本中,它的xpath相当弱,但是在2.7+ much improved:
import xml.etree.ElementTree as ET root = ET.parse(filename) result = '' for elem in root.findall('.//child/grandchild'): # How to make decisions based on attributes even in 2.6: if elem.attrib.get('name') == 'foo': result = elem.text break
lxml package支持xpath。虽然我在self::axis上遇到了一些问题,但它似乎工作得很好。也有Amara,但我没有亲自使用过。
libxml2有许多优点:
缺点包括:
如果您正在进行简单的路径选择,请使用ElementTree(包含在Python 2.5中)。如果您需要完全符合规范或原始速度,并且能够处理本机代码的分发,请使用libxml2。
libxml2xpath使用示例
元素树XPath使用示例
听起来像是lxml广告。;)元素树包含在std库中。在2.6及以下版本中,它的xpath相当弱,但是在2.7+ much improved:
相关问题 更多 >
编程相关推荐