猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
如何在Python中使用XPath?
有哪些支持XPath的库?是否有完整的实现?图书馆如何使用?它的网站在哪里?
慕的地10843
浏览 221
回答 4
4回答
慕森卡
libxml2具有许多优点:符合规范积极发展和社区参与速度。这实际上是围绕C实现的python包装器。无处不在。libxml2库无处不在,因此已经过了很好的测试。缺点包括:符合规范。严格 在其他库中,诸如默认名称空间处理之类的事情会更容易。使用本机代码。这可能会很麻烦,具体取决于您的应用程序的分发/部署方式。可以使用RPM来减轻这种痛苦。手动资源处理。请注意下面的示例中对freeDoc()和xpathFreeContext()的调用。这不是很Pythonic。如果您要进行简单的路径选择,请坚持使用ElementTree(Python 2.5附带)。如果需要完全符合规范或原始速度并且可以应付本机代码的分发,请使用libxml2。libxml2 XPath使用示例import libxml2doc = 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()ElementTree XPath使用示例from elementtree.ElementTree import ElementTreemydoc = ElementTree(file='tst.xml')for e in mydoc.findall('/foo/bar'): print e.get('title').text
0
0
0
慕哥6287543
该LXML包支持XPath。尽管我在self ::轴上遇到了一些麻烦,但它似乎工作得很好。还有Amara,但我个人还没有使用过。
0
0
0
慕标琳琳
使用LXML。LXML充分利用了libxml2和libxslt的功能,但是将它们包装在比这些库中固有的Python绑定更多的“ Pythonic”绑定中。这样,它将获得完整的XPath 1.0实现。本机ElemenTree支持XPath的有限子集,尽管它可能足以满足您的需求。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Python
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续