|
Subject: Re: [xsl] Glossary Help From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Sat, 29 Jul 2006 14:09:11 +0530 |
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/division">
<division>
<xsl:copy-of select="@*" />
<xsl:for-each select="topic">
<topic>
<xsl:copy-of select="@*" />
<xsl:copy-of select="title" />
<xsl:apply-templates select="body" />
</topic>
</xsl:for-each>
</division>
</xsl:template><xsl:template match="body"> <glossarylist> <xsl:apply-templates select="p/i/b[not(../../text())]" /> <xsl:apply-templates select="p/i/b[../../text()]" /> <xsl:apply-templates select="p/b[not(../../text())]" /> <xsl:apply-templates select="p/b[../../text()]" /> </glossarylist> </xsl:template>
<xsl:template match="p/i/b[not(../../text())]"> <glossarydiv> <xsl:value-of select="." /> </glossarydiv> </xsl:template>
<xsl:template match="p/i/b[../../text()]"> <glossaryterm> <xsl:value-of select="." /> </glossaryterm> <glossarydef> <xsl:value-of select="../../text()" /> </glossarydef> </xsl:template>
<xsl:template match="p/b[not(../text())]"> <glossarydiv> <xsl:value-of select="." /> </glossarydiv> </xsl:template>
<xsl:template match="p/b[../text()]"> <glossaryterm> <xsl:value-of select="." /> </glossaryterm> <glossarydef> <xsl:value-of select="../text()" /> </glossarydef> </xsl:template>
<?xml version="1.0" ?>
<division type="appendix">
<topic id="cfmrk">
<title>Glossary</title>
<body>
<p>The terms in this glossary cover topics
related to this manual. Alternate naming is included for reference.</p>
<p><i> <b>Abbreviations</b> </i></p>
<p><i> <b>AC:</b></i> alternating current</p>
<p><i> <b>AGP:</b></i> accelerated graphics port</p>
<p><i> <b>ANSI: </b></i> American National
Standards Institute</p>
<p><i><b>APM:</b></i> advanced power manager</p>
</body>
</topic>
<topic id="Blank">
<title>A</title>
<body>
<p><b>AccuPoint: </b> A pointing device integrated into the TOSHIBA
computer keyboard.</p>
<p><b>adaptor: </b>A device that provides an interface between two
dissimilar electronic devices. For example, the AC adaptor modifies the
power from a wall outlet for use by the computer. This term also refers to
the add-in circuit cards that control external devices, such as video
monitors and magnetic tape devices. </p>
<p><b>allocate: </b> To assign a space or function for a
specific task.</p>
<p><b>alphanumeric:</b> Keyboard characters including letters,
numbers and
other symbols, such as punctuation marks or mathematical symbols.</p>
</body>
</topic>
</division><?xml version="1.0" encoding="UTF-8"?>
<division type="appendix">
<topic id="cfmrk">
<title>Glossary</title>
<glossarylist>
<glossarydiv>Abbreviations</glossarydiv>
<glossaryterm>AC:</glossaryterm>
<glossarydef> alternating current</glossarydef>
<glossaryterm>AGP:</glossaryterm>
<glossarydef> accelerated graphics port</glossarydef>
<glossaryterm>ANSI: </glossaryterm>
<glossarydef> American National
Standards Institute</glossarydef>
<glossaryterm>APM:</glossaryterm>
<glossarydef> advanced power manager</glossarydef>
</glossarylist>
</topic>
<topic id="Blank">
<title>A</title>
<glossarylist>
<glossaryterm>AccuPoint: </glossaryterm>
<glossarydef> A pointing device integrated into the TOSHIBA
computer keyboard.</glossarydef>
<glossaryterm>adaptor: </glossaryterm>
<glossarydef>A device that provides an interface between two
dissimilar electronic devices. For example, the AC adaptor modifies the
power from a wall outlet for use by the computer. This term also refers to
the add-in circuit cards that control external devices, such as video
monitors and magnetic tape devices. </glossarydef>
<glossaryterm>allocate: </glossaryterm>
<glossarydef> To assign a space or function for a specific task.</gloss
arydef>
<glossaryterm>alphanumeric:</glossaryterm>
<glossarydef> Keyboard characters including letters, numbers and
other symbols, such as punctuation marks or mathematical symbols.</glossarydef>
</glossarylist>
</topic>
</division>Regards, Mukul
Hi All,
I have an input xml file which looks like below, Here I have to do apply glossary elements instead of <p><i><b> something like outputxml.
Inputxml:
<division type="appendix"> <topic id="cfmrk"> <title>Glossary</title> <body> <p>The terms in this glossary cover topics related to this manual. Alternate naming is included for reference.</p> <p><i> <b>Abbreviations</b> </i></p> <p><i> <b>AC:</b></i> alternating current</p> <p><i> <b>AGP:</b></i> accelerated graphics port</p> <p><i> <b>ANSI: </b></i> American National Standards Institute</p><p><i><b>APM:</b></i> advanced power manager</p> </body> </topic>
<topic id="Blank"> <title>A</title> <body><p><b>AccuPoint: </b> A pointing device integrated into the TOSHIBA computer keyboard.</p> <p><b>adaptor: </b>A device that provides an interface between two dissimilar electronic devices. For example, the AC adaptor modifies the power from a wall outlet for use by the computer. This term also refers to the add-in circuit cards that control external devices, such as video monitors and magnetic tape devices. </p> <p><b>allocate: </b> To assign a space or function for a specific task.</p> <p><b>alphanumeric:</b> Keyboard characters including letters, numbers and other symbols, such as punctuation marks or mathematical symbols.</p> </body></topic>
And so on for other topics which contains title alphabetically.........
Outputxml:
<division type="appendix"> <topic id="cfmrk"> <title>Glossary</title>
<glossarylist> <glossarydiv> Abbreviations </ glossarydiv > <glossaryterm> AC: </glossaryterm> <glossarydef> alternating current </glossarydef> </glossarylist>
Same for other topic titles "A", "B".......
Can anyone provide any examples or references for the same.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Glossary Help, Shailesh Shinde | Thread | Re: [xsl] Glossary Help, Mukul Gandhi |
| [xsl] Glossary Help, Shailesh Shinde | Date | Re: [xsl] Glossary Help, Mukul Gandhi |
| Month |