[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Brackets in XPATHS
Hi Edward, >>/xpath1/*[name()='xpath2' or name()='xpath3']/xpath4 > > the xpath's are xpaths not names, I just wrote them this way to > emphasise what I was talking about. > > xpath1 = tag1/tag2[@attrib1='fads']/tag3[@attrib2='ahf'] > xpath2 = tag4 > xpath3 = tag5[1][attrib3='gf' and tag6/@attrib4 ='flk'] > xpath4 = @attrib5 You could use the self:: axis instead, with: tag1/tag2[@attrib1 = 'fads']/tag3[@attrib2 = 'ahf'] /node()[self::tag4 | self::tag5[1][attrib3 = 'gf' and tag6/@attrib4 = 'flk']] /@attrib5 This pattern doesn't work for *all* paths. Specifically, you couldn't use it if path2 or path3 were selecting attribute or namespace nodes. However, even if you weren't using such complex paths, using the self:: axis is better than testing against the name() function because it's namespace-aware, whereas the name() function uses the prefixes from the source document. Note that the path: tag1/tag2[@attrib1 = 'fads']/tag3[@attrib2 = 'ahf'] /(tag4 | tag5[1][attrib3 = 'gf' and tag6/@attrib4 = 'flk']) /@attrib5 will be just fine in XPath 2.0. Cheers, 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
|