Subject: Re: [xsl] Creating nodes for the source versus the results tree. From: "James Fuller" <james.fuller@xxxxxxxxxx> Date: Mon, 8 Jul 2002 20:51:40 +0100 |
use EXSLT this will ensure a bit of interoperability www.exslt.org cheers, jim fuller ----- Original Message ----- From: "Edward L. Knoll" <ed.knoll@xxxxxxxxxxxxxx> To: "Jeni Tennison" <jeni@xxxxxxxxxxxxxxxx> Cc: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx> Sent: Monday, July 08, 2002 8:13 PM Subject: Re: [xsl] Creating nodes for the source versus the results tree. > 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 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 | [xsl] Want to process XHTML in my X, Edward L. Knoll |
Re: [xsl] output of xsl:message in , Joerg Heinicke | Date | Re: [xsl] grouping in XPATH with pa, G. Ken Holman |
Month |