小编Jas*_*son的帖子

Python libxml2 XPath/Namespace帮助

我正在尝试学习如何使用此示例XML文件从Python执行XPath查询:http://pastie.org/1333021我刚刚添加了一个命名空间,因为我的实际应用程序使用它.

基本上,我想执行一个返回节点子集的顶级查询,然后查询子集(比这个例子大得多)

所以这是我的代码,首先找到所有<food>节点,然后迭代每个节点的描述.

#!/usr/bin/python2

import libxml2

doc = libxml2.parseFile("simple.xml")
context = doc.xpathNewContext()

context.xpathRegisterNs("db", "http://examplenamespace.com")
res = context.xpathEval("//db:food")

for node in res:
    # Query xmlNode here
    print "Got Food Node:"
    desc = node.xpathEval('db:description') # this is wrong?
    print desc
Run Code Online (Sandbox Code Playgroud)

所以它本质上是一个命名空间问题,如果我xlns从XML文件中删除该属性并使用基本的XPATH查询而db:不能正常工作.顶级查询//db:food工作正常,但第二个查询失败.

请有人可以更正我的命名空间/查询语法.

非常感谢

python libxml2

3
推荐指数
1
解决办法
3078
查看次数

标签 统计

libxml2 ×1

python ×1