Subject: Re: [xsl] XSLT's Template Dispatch From: "Clark C. Evans" <cce@xxxxxxxxxxxxxx> Date: Fri, 5 Jan 2001 13:36:41 -0500 (EST) |
On Fri, 5 Jan 2001, David Carlisle wrote: > The first case, <when > test="//author[generate-id(.)=$id]">, has a path > expression returning the node-set consisting of any > author element having an identifier equal to the current > node's identifier. Therefore, if the current node > happens to be an author, the node-set returned will be > non-empty, which converts to a true boolean value. > > isnt this just self::author ? Yes. For the *particular* case you mentioned, you could change the test to "self::author"; this is actually a pretty snazzy optimization. However, I was trying to demonstrate a automated general-case: To translate any <template match="..." construct having an XPath expression X, first add a new <when test="..." clause to the dispatch template. The path expression for the when clause is formed formed by appending "[generate-id(.)=$id]" to X, and if X is relative prepending "//". Then move the body of the template into the body of the when clause, replacing each call to apply-templates with a call to the apply template. Very sorry that the description was not clear. The point of the article is to show how one could re-write template usage into a more procedural style. Not that you would ever want do to this for production purposes; however, it is instructive to see the equivalence between the two forms. ;) Clark XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT's Template Dispatch, David Carlisle | Thread | [xsl] XSLT's Template Dispatch, Clark C. Evans |
Re: [xsl] How to create XSL for CAL, Jeni Tennison | Date | RE: [xsl] How to create XSL for CAL, Adam Van Den Hoven |
Month |