[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Glossary Help

Subject: Re: Glossary Help
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Sat, 29 Jul 2006 17:40:12 +0530
glossary mathematical symbols
Don't know what is the exact XML you have. Perhaps you have a XML
something like following:

<?xml version="1.0" ?>
<divisions>
 <division>
   <x/>
   <body>
     <body-contents/>
   </body>
 </division>
 <!-- may have more division tags, as above -->
 <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>
</divisions>

To transform this to the desired XML, the stylesheet will be (I think
you want to produce glossary where division has a attribute
type="appendix"):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" indent="yes"/>

<xsl:template match="*">
 <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

<xsl:template match="division[@type='appendix']">
 <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[ancestor::division[@type='appendix']]">
 <glossarylist>
   <xsl:apply-templates select="p[not(text())]/i/b" />
   <xsl:apply-templates select="p[text()]/i/b" />
   <xsl:apply-templates select="p[not(text())]/b" />
   <xsl:apply-templates select="p[text()]/b" />
 </glossarylist>
</xsl:template>

<xsl:template match="p[not(text())]/i/b">
 <glossarydiv>
   <xsl:value-of select="." />
 </glossarydiv>
</xsl:template>

<xsl:template match="p[text()]/i/b">
 <glossaryterm>
   <xsl:value-of select="." />
 </glossaryterm>
 <glossarydef>
   <xsl:value-of select="../../text()" />
 </glossarydef>
</xsl:template>

<xsl:template match="p[not(text())]/b">
 <glossarydiv>
   <xsl:value-of select="." />
 </glossarydiv>
</xsl:template>

<xsl:template match="p[text()]/b">
 <glossaryterm>
   <xsl:value-of select="." />
 </glossaryterm>
 <glossarydef>
   <xsl:value-of select="../text()" />
 </glossarydef>
</xsl:template>

</xsl:stylesheet>

The output produced is:

<?xml version="1.0" encoding="UTF-8"?>
<divisions>
 <division>
     <x/>
     <body>
        <body-contents/>
     </body>
 </division>
 <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.</gl
ossarydef>
           <glossaryterm>alphanumeric:</glossaryterm>
           <glossarydef>  Keyboard characters including letters, numbers and
other symbols, such as punctuation marks or mathematical symbols.</glossarydef>
        </glossarylist>
     </topic>
  </division>
</divisions>

If you need more help, please let us know.

Regards,
Mukul

http://gandhimukul.tripod.com

On 7/29/06, Shailesh Shinde <shailesh@xxxxxxxxxxxx> wrote:
Hi,

Yes, having other divisions also in the xml? So, needs to update only the
part of xml where glossary needed.

--
Shailesh

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.