Subject: Re: [xsl] First attempt at xsl:result-document From: Spencer Tickner <spencertickner@xxxxxxxxx> Date: Mon, 25 Apr 2005 12:07:37 -0700 |
Hi Jay, Thanks once again for the reply. I've retested my application and do not think the URI is the problem. As an example . . . <xsl:for-each select="part"> <xsl:variable name="filename" select="concat('file:///', position(), '.htm'"/> <xsl:result-document href={$filename}" format="html"> <html> <body> <!-- Test --> <xsl:value-of="/act/title"/> <!--End of Test --> <xsl:apply-templates mode="content"/> </body> </html> </xsl:result-document> </xsl:for-each> </xsl:template> Now let's say I have 4 parts in an xml document. I do get 5 files in the end (1 table of contents and 4 parts) and each file is named as expected and each file picks up the title. However none of the files pick up any content from the <xsl:apply-templates mode="content"/>. I'm sure it's not the templates fault as I used exactly the same ones when I created my original document. It seems to be matching the templates within a for-each statement. To be sure here is an example of a template: <xsl:template match="section" mode="content"> <div class="section"><xsl:apply-templates select="text()|strong|em|sup|sub|u|br"/></div> </xsl:template> <xsl:template match="strong|em|u|sup|sub|strong"> <xsl:element name="{name()}"> <xsl:apply-templates/> </xsl:element> </xsl:template> On 4/25/05, JBryant@xxxxxxxxx <JBryant@xxxxxxxxx> wrote: > Well, you could try setting the base URI. According to the spec, that's > implementation-specific, so you'll have to consult your XSLT processor's > documentation. > > Jay Bryant > Bryant Communication Services > (presently consulting at Synergistic Solution Technologies) > > Spencer Tickner <spencertickner@xxxxxxxxx> > 04/25/2005 12:31 PM > Please respond to > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > To > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > cc > > Subject > Re: [xsl] First attempt at xsl:result-document > > > Hi Jay, > > Thanks for the response. I did try stripping out the file:/// and I > get a java.lang.RuntimeException: "Resolved URL is malformed". This > may be because I tried to really strip down my code to make my problem > more visible on the list. in truth the variable is something more like > <xsl:variable name="filname" > select=concat('file:///W:/test/testing/b/, $myindex, '_', position(), > '.htm')"/> > > On 4/25/05, JBryant@xxxxxxxxx <JBryant@xxxxxxxxx> wrote: > > Hi, Spencer, > > > > When I tried your XML and XSL files (after filling in the necessary > > pieces), I found that I got no output unless I removed the "file:///" > part > > of the href value. > > > > Jay Bryant > > Bryant Communication Services > > (presently consulting at Synergistic Solution Technologies) > > > > Spencer Tickner <spencertickner@xxxxxxxxx> > > 04/25/2005 11:59 AM > > Please respond to > > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > > To > > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > cc > > > > Subject > > [xsl] First attempt at xsl:result-document > > > > > > Hi everyone, and thanks in advance for the help. > > > > I have a magical and wonderful xsl that was doing everything I needed > > it too. Unfortunately as this buisness goes, requirements changed. > > Some of the html documents I was producing were getting too large for > > our website. The decision was made to split the larger ones up by > > part. So after some research I found xsl:result-document. Here is some > > sample xml, my single file xsl transformer and my attempt at > > multi-file transformation. > > > > xml > > > > <act> > > <part>this is a part we will divide a file on</part> > > <section>This is a section</section> > > <clause>This is a clause</clause> > > <part>This is another part, in the new scheme of things, a second > > file</part> > > <section>Yet another section</section> > > </act> > > > > original xsl (works fine) > > > > <xsl:template match="act"> > > > > <html> > > <body> > > <xsl:apply-templates mode="tableofcontents"/> > > <xsl:apply-templates mode="content"/> > > </body> > > </html> > > > > </xsl:template> > > <!-- Down here of course I have the templates that apply the styles > > for either mode --> > > > > new xsl (well, not so fine) > > > > <xsl:template match="act"> > > > > <xsl:result-document href="file:///toc.html" format="html"> > > <html> > > <body> > > <xsl:apply-templates mode="tableofcontents"/> > > </body> > > </html> > > </xsl:result-document> > > > > <xsl:for-each select="part"> > > <xsl:variable name="filename" select="concat('file:///', position(), > > '.htm'"/> > > <xsl:result-document href={$filename}" format="html"> > > <html> > > <body> > > <xsl:apply-templates mode="content"/> > > </body> > > </html> > > </xsl:result-document> > > </xsl:for-each> > > </xsl:template> > > > > <!-- Exact same templates that apply the styles for either mode as > > original xsl --> > > > > In the new xsl, I get the tableof contents no problem. in terms of > > content I get a number of files (same as the number of parts) with no > > content in them. I realize that the for-each statement probably > > doesn't do what I'm hoping it will do, but I can't quite wrap my mind > > around any other ways of doing this. I would really appreciate any > > suggestions or advice. > > > > Thank you all very much, > > > > Spencer
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] First attempt at xsl:resu, JBryant | Thread | RE: [xsl] First attempt at xsl:resu, Michael Kay |
RE: [xsl] text() function, Michael Kay | Date | RE: [xsl] First attempt at xsl:resu, Michael Kay |
Month |