[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Simple XPath question
David Carlisle wrote: > > It doesn't work as > > following-sibling::PERSON/@lastname = ./@lastname and > > following-sibling::PERSON/@firstname = ./@firstname > > does not force that it is the same following-sibling. ie it selects > a PERSON if some later person has the same firstname, and a third person > has the same lastname. You can make the selection in various ways in > xslt but I suspect Paul is right that you can't do it in a single > xpath expression unless you give yourself an extension function that > (say) returns a string uniquely generated from the firstname and > lastname attributes of an element node, then you could do > > dpc:bothnames(following-sibling::PERSON)=dpc:bothnames(PERSON) Using just the built-in functions, it's possible to get a string uniquely generated from the firstname and lastname attributes of _one_ element node, e.g.: concat(string-length(@firstname),' ',concat(@firstname,@lastname)) The problem is that we need your dpc:bothnames(following-sibling::PERSON) function to return a list of these uniquely generated strings, and a list of strings (as opposed to a list of nodes that happen to be text nodes) is of course not a valid XPath type. -- cheers phil '"having more of a life is one of the earliest and subtlest signs of mediocrity"' --- Musil 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
|