[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Transitive closure for XPath
Christian Nentwich wrote: > something I really lose sleep over is the lack of a transitive closure > function in XPath. [...] > Would you please comment on a little proposal I have written - includes > an implementation of the operator for Xalan as a freebie: > > http://www.cs.ucl.ac.uk/staff/c.nentwich/closure/ This is indeed a very useful feature. The proposal as described slightly breaks the XPath evaluation model though: the second argument to 'closure(node-set,node-set)' has Algol-style call-by-name semantics. That is, it's not really a node-set but rather an XPath expression or "thunk" which is re-evaluated with a different context multiple times. I think this calls for new syntax, either a new keyword or operator. Postfix '*' might be suitable - closure(/ROOT/node[1], id(./@child)) in your example would be written: /ROOT/node[1]/(id(./@child))* On the other hand this plays merry hell with the XPath grammar, so maybe not... > Just imagine what this operator could do for *your* family tree XSLT > stylesheet. Not to mention Schematron! A closure operator is all that's missing to give XPath the full power of ("caterpilar-") regular expressions. --Joe English jenglish@f...
|
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
|