我正在尝试学习如何使用此示例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工作正常,但第二个查询失败.
请有人可以更正我的命名空间/查询语法.
非常感谢