Re: [xml] xmllint --shell : xpath is not working? (libxml2-2.6.4)

hi Daniel,

Daniel Veillard wrote:
On Mon, Jan 26, 2004 at 11:06:07AM +0100, Stefan Kost wrote:

 it's an XPath FAQ, a non qualified name do not select namespaced nodes.
And widget is in the ""; namespace.
You can try xpath //*[localname = 'widget'] to confirm this.

/ > xpath //*[localname = 'widget']
Object is a Node Set :
Set contains 0 nodes:

  that would be localname(), it's a function call...
just for the mailing-list archive - the corrent name is 'local-name()'

xpath //*[local-name() = 'widget']
Object is a Node Set :
Set contains 1 nodes:
1  ELEMENT widget
    ATTRIBUTE type

XPath wasn't designed to be used in isolation, the specifications
embedding it have to provide the mechanism to bind namespaces,
then something like //gimp:widget would work.

I've already tried that (but excluded it form the post)
/ > xpath //giml:widget
XPath error : Undefined namespace prefix
xmlXPathEval: evaluation failed
Object is empty (NULL)


So does it mean, we need another shell command like e.g.
 bind ns_prefix,ns_url
which would call

  yes, that's the proper way.

- or is there another way to handle it?

  not really, even inheriting from the namespaces at the current
node in the document would not help in a lot of cases, especially
default namespaces.

If not, should prepare a patch?

  yes if you can. See xmlShell() in debugXML.c

Its on my TODO list ;-)

      \|/            Stefan Kost
     <@ @>           private            business
+-oOO-(_)-OOo------------------------------------------------------ - - -  -   -
|       __  Address  Simildenstr. 5     HTWK Leipzig, Fb IMN, Postfach 301166
|      ///           04277 Leipzig      04251 Leipzig
| __  ///            Germany            Germany
| \\\///    Phone    +49341 2253538     +49341 30766101
|  \__/     EMail
|           WWW
===-=-=--=---=---------------------------------- - - -  -    -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]