[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] Namespace Query Issue
- From: "Martin (gzlist)" <gzlist googlemail com>
- To: "Alistair Leslie-Hughes" <leslie_alistair hotmail com>
- Cc: xml gnome org
- Subject: Re: [xml] Namespace Query Issue
- Date: Fri, 18 Apr 2008 12:32:34 +0100
On 18/04/2008, Alistair Leslie-Hughes <leslie_alistair hotmail com> wrote:
> Hi,
>
> When use xmlXPathEval with the query "/root/WEB:Site" on the following xml
>
> <?xml version=\"1.0\"?>
> <root xmlns:WEB='http://www.winehq.org'>
> <WEB:Site version=\"1.0\" />
> </root>
>
> I get the following error
> XPath error : Undefined namespace prefix
> xmlXPathEval: evaluation failed
>
> Using the same xml and query in MSXML it works.
>
> Can someone explain what I am doing wrong?
>
> Best Regards
> Alistair Leslie-Hughes
You need to register the namespace prefix/uri pair on the xpath context.
See:
http://xmlsoft.org/html/libxml-xpathInternals.html#xmlXPathRegisterNs
Some example xpath code:
http://xmlsoft.org/examples/xpath1.c
Or python version, which is brief enough for email:
>>> import libxml2
>>> doc = libxml2.parseDoc("""<?xml version="1.0"?>
... <root xmlns:WEB='http://www.winehq.org'>
... <WEB:Site version="1.0"/>
... </root>""")
>>> ctx = doc.xpathNewContext()
>>> ctx.xpathRegisterNs("WEB", "http://www.winehq.org")
0
>>> ctx.xpathEval("count(//WEB:*)")
1.0
This one really needs to go on an FAQ thingy really.
Martin
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]