libxml2 w/ xpath python bindings

Brian Donovan john at doe.com
Fri Jan 23 14:21:24 EST 2004


Turns out the issue was with the XML namespaces. The document had a
defualt namespace which had to be declared:

xmlDoc = libxml2.parseFile(base + '/' + curfile)
ctxt = xmlDoc.xpathNewContext()
ctxt.xpathRegisterNs('rng',"http://relaxng.org/ns/structure/1.0")

elements = ctxt.xpathEval('//rng:element/@name')
for e in elements:
  rnc.elements.append(e.content)

On Fri, 23 Jan 2004 18:58:34 +0000, Brian Donovan wrote:

> Hi All,
> 
>   I'm trying to get xpath to work with the libxml2 python bindings.
> I'm using the following
> 
> doc = libxml2.parseFile(filename)
> result = doc.xpathEval('//*')
> 
> My test XML file has 10 nodes in it and I'm trying to get an element named
> 'element' (from an relaxng schema). 
> 
> If I use the xpath expression '//*' I'll get a list with 10 nodes
> including the element element as expected. If I try '//element' I'm
> getting an empty list with no errors. Any idea where I could be going
> wrong?
> 
> Brian




More information about the Python-list mailing list