Subject: Re: [xsl] Creating nodes for the source versus the results tree. From: "Edward L. Knoll" <ed.knoll@xxxxxxxxxxxxxx> Date: Mon, 08 Jul 2002 13:13:59 -0600 |
I'm somewhat adverse to a specific product coupling, since it means the stylesheets might not be generically consumable if we want/have to switch to a different XSLT processor. I'm also a bit leary about vendor specific extensions with respect to the next generate of XSL. I was all set to take advantage of some XSL 1.1 features of a specific processor when I learned that XSL 1.1 had been abandoned and those features were to be handled very differently in XSL 2.0. With that long-winded preamble, is utilizing this kind of "nodeset()" extentsion function type of approach likely to be consistent/compatible/portable moving forward into the next generation of XSL? Thanks for help, Ed > Hi Ed, > > > I know this is something I could do in a two pass process: during > > pass1 process of the original/source XML to create the > > intermediate/temporary XML elements, during pass2 process both the > > original XML and generated XML elements to create the final output. > > I'd rather do this in a single pass; is this possible? > > Only using an extension function. You can store the result of the > first pass in a variable, but it's stored as a result tree fragment, > which means that you can't go on to process it further without turning > it into a node set. You can turn it into a node set with extension > functions; most processors have them... > > > Two other notes/constraints: (1) I'm using the XalanC++ processor, > > ... and in Xalan-C++ it's called nodeset(), in the namespace > http://xml.apache.org/xalan. So do something like: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xalan="http://xml.apache.org/xalan" > extension-element-prefixes="xalan"> > > <xsl:template match="/"> > <xsl:variable name="pass1-rtf"> > <xsl:apply-templates mode="pass1" /> > </xsl:variable> > <xsl:apply-templates select="xalan:nodeset($pass1-rtf)" > mode="pass2" /> > </xsl:template> > > ... > > </xsl:stylesheet> > > with templates in 'pass1' mode for your first pass and in 'pass2' mode > for your second pass. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Creating nodes for the so, Jeni Tennison | Thread | Re: [xsl] Creating nodes for the so, Jeni Tennison |
Re: [xsl] find and replace in javas, Bryan Tarantina | Date | RE: [xsl] find and replace in javas, Bryan Tarantina |
Month |