Subject: [xsl] How to create index entry in xsl file? From: "Kalpana Pathak" <pathak.kalpana@xxxxxxxxx> Date: Mon, 22 Dec 2008 19:43:04 +0530 |
Hello everyone, I would like to generate the indexes in the PDF output. I typed the following elements in the xsl file, but it is giving me error. Can someone guide me to what are the attributes/parameters i need to put in the xsl file to generate the index. <xsl:key name="letter" match="indexterm" use="substring(primary,1,1)"/> <xsl:key name="letter" match="indexterm" use="translate(substring(primary,1,1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> <xsl:apply-templates select="//indexterm[count(.| key('letter', translate(substring(primary,1,1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'))[1]) = 1]" mode="index-div"> <xsl:sort select="translate(primary, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> </xsl:apply-templates> <xsl:key name="primary" match="indexterm" use="primary"/> <xsl:template match="indexterm" mode="index-div"> <!-- Get the group key (ie. first letter of index terms in this group --> <xsl:variable name="key" select="translate(substring(primary,1,1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> <!-- Output label for current index group --> <xsl:value-of select="$key"/> <xsl:apply-templates select="key('letter', $key) [count(.|key('primary',primary)[1])=1]" mode="index-primary"> <xsl:sort select="translate(primary, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/> </xsl:apply-templates> </xsl:template> <xsl:key name="primary" match="indexterm" use="primary"/> <xsl:template match="indexterm" mode="index-primary"> <!-- Find all occurences of index term --> <xsl:variable name="refs" select="key('primary', primary)"/> <!-- Output text of index term --> <xsl:value-of select="primary"/> <xsl:for-each select="$refs[not(secondary)]"> <!-- Create page number reference (print) or link with back reference (HTML) to each occurrence of the index term --> </xsl:for-each> <xsl:if test="$refs/secondary"> <!-- Process secondary level entries --> </xsl:if> </xsl:template> Thanks in advance, Kalpana
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Variable issues, David Carlisle | Thread | Re: [xsl] How to create index entry, Vasu Chakkera |
Re: [xsl] Variable issues, Martin Honnen | Date | Re: [xsl] How to create index entry, Vasu Chakkera |
Month |