Re: [xsl] namespace aware java-xpathapi problem

Subject: Re: [xsl] namespace aware java-xpathapi problem
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Mon, 12 Nov 2001 17:50:59 +0000
Hi Sanjay,

> I have my xml doc like below
> <Root xmlns:xsi="";  xmlns="
>";  type="X">
> <level1>
>      <level2 xsi:type = 'someValue'>
>           <details>description</details>
>      </level2>
> </level1>
> </Root>

Note that the level2 element (which is in the
namespace) has a type attribute in the namespace.

> If I try to get to the level2 node by using xpathStr as
> "//xs:level2[@type = 'someValue']", I am unable to get the node. If
> I remove "xsi:" from the XML, then the same XPath works fine.

The path "//xs:level2[@type = 'someValue']" looks for an level2
element in the namespace denoted by the prefix 'xs' that has a type
attribute *in no namespace* with the value 'someValue'. Your XML
document doesn't have such a level2 element - the only level2 element
that it contains has a type attribute *in the namespace*.

So you need to change the path so that it accesses the value of the
xsi:type attribute instead:

  //xs:level2[@xsi:type = 'someValue']

and you need to make sure that your prefix resolver associates the
prefix 'xsi' with the namespace

I hope that helps,


Jeni Tennison

 XSL-List info and archive:

Current Thread