[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: relative . not working in complex xpath
"." within a predicate refers to the node that the predicate is being applied to, so the context item for ./xs:extension is the same as the context node for @name. If you're using XSLT you can often get arround this using the current() function. In pure XPath 1.0, join queries like this are difficult and not always possible. Switch to XPath 2.0 or XQuery if possible. Michael Kay Saxonica > I have selected an element from an XSD file and want to find its base > class > to accumulate all xs:attributes. > So I first select the node in question with > //xs:complexType[@name='SomeType'] > > Then I want to go on from there and collect all xs:attribute > node.selectNodesNS(".//xs:attribute | > //xs:complexType[@name=./xs:extension/@base]/@name]//xs:attribute", xsns) > > Unfortunately that only gives me the attributes of the "node" I perform > the > select from. > I get the correct results if I explicitly use the node in my query, > instead > of the relative expression of "." in "@name=./xs:extension/@base" like > this: > > node.selectNodesNS(".//xs:attribute | //xs:complexType[@name = > //xs:element[@type=//xs:complexType[@name='SomeType']//xs:extension/@base]/@name]//xs:attribute", > xsns) > > What is going on here? > Using XPath 1.0 with MSXML. > > Thanks!
|
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
|