Re: namespace aware java-xpathapi problem
Hi Sanjay, > I have my xml doc like below > > <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=" > http://www.x.com/XYZ" type="X"> > <level1> > <level2 xsi:type = 'someValue'> > <details>description</details> > </level2> > </level1> > > </Root> Note that the level2 element (which is in the http://www.x.com/XYZ namespace) has a type attribute in the http://www.w3.org/2001/XMLSchema-instance 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 http://www.w3.org/2001/XMLSchema-instance 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 'http://www.w3.org/2001/XMLSchema-instance'. I hope that helps, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format