|
Subject: Re: [xsl] Dealing without global counters From: "M. David Peterson" <m.david@xxxxxxxxxx> Date: Tue, 11 Nov 2003 22:18:14 -0700 |
Hi Robert:
The following XML... If I understand correctly what you are saying the
following XML...
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<chapters>
<chapter>
<para>testPara_one
</para>
<para>testPara_two
</para>
<image>testImage_one
</image>
<para>testPara_three
</para>
<image>testImage_two
</image>
<table>testTable
</table>
<para>testPara_four
</para>
</chapter>
<chapter>
<para>testTwoPara_one
</para>
<para>testTwoPara_two
</para>
<image>testTwoImage_one
</image>
<para>testTwoPara_three
</para>
<image>testTwoImage_two
</image>
<table>testTwoTable
</table>
<para>testTwoPara_four
</para>
</chapter>
</chapters>
Applied to the following stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="chapters/chapter">
Chapter: <xsl:number/><br/>
Paragraphs:<br/>
<xsl:for-each select="para">
>> 
<xsl:number/> :
<xsl:value-of select="."/><br/>
</xsl:for-each>
Images:<br/>
<xsl:for-each select="image">
>> 
<xsl:number/> :
<xsl:value-of select="."/><br/>
</xsl:for-each>
Tables:<br/>
<xsl:for-each select="table">
>> 
<xsl:number/> :
<xsl:value-of select="."/><br/>
</xsl:for-each>
End of Chapter <xsl:number/><br/><br/>
</xsl:template>
</xsl:stylesheet>
Will give you the following output (which is what I think you said you want.
Let me know if it something different)...
Chapter: 1
Paragraphs:
>> 1 : testPara_one
>> 2 : testPara_two
>> 3 : testPara_three
>> 4 : testPara_four
Images:
>> 1 : testImage_one
>> 2 : testImage_two
Tables:
>> 1 : testTable
End of Chapter 1
Chapter: 2
Paragraphs:
>> 1 : testTwoPara_one
>> 2 : testTwoPara_two
>> 3 : testTwoPara_three
>> 4 : testTwoPara_four
Images:
>> 1 : testTwoImage_one
>> 2 : testTwoImage_two
Tables:
>> 1 : testTwoTable
End of Chapter 2
Let me know if you desire a different output.
Best of luck!
M.
----- Original Message -----
From: "Robert Ogden" <Robert.Ogden@xxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, November 11, 2003 5:24 PM
Subject: [xsl] Dealing without global counters
> I have done a bit of reading, and it seems global counters are not the
> answer in XSLT. That being said I have a problem (normally solved by a
> global counter) I need to solve. I'm building a TOC for an XML
> document.
> The best way is to offer xml structure and intended output.
>
> XML:
> <chapter>
> <para>
> </para>
> <para>
> </para>
> <image>
> </image>
> <para>
> </para>
> <image>
> </image>
> <table>
> <table>
> <para>
> <para>
> </chapter>
>
> Output (this output is a javascript array for an expandable TOC)
> db[1]=new dbRecord(chapter stuff)
> db[2]=new dbRecord(first para stuff)
> db[3]=new dbRecord(second para stuff)
> db[4]=new dbRecord(third para stuff)
> db[5]=new dbRecord(fourth para stuff)
> db[6]=new dbRecord(first image stuff)
> db[7]=new dbRecord(second image stuff)
> db[8]=new dbRecord(first table stuff)
>
> What I want to do is output a chapter, all text in a chapter, then all
> images for a chapter, and lastly all tables for a chapter.
> This is done repetitively for each chapter.
>
> For the text, calling a template that contains <xsl:number> would work.
> I would get a sequential numbering in the db[] (which IS required,
> db[number] where number is sequential 1 to N). But as you see the
> figures and tables are interlaced in the XML, and not desired to be that
> way in the TOC.
>
> Any help would be appreciated.
> Thanks,
>
> Robert Ogden
> IETM Developer
> Navy Programs
> (763) 572-7121
>
> 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 -> |
|---|---|---|
| [xsl] Dealing without global counte, Robert Ogden | Thread | [xsl] Re: Dealing without global co, Dimitre Novatchev |
| [xsl] support node-set() extension , Dongling Ding | Date | [xsl] Re: Dealing without global co, Dimitre Novatchev |
| Month |