Jump to content
Sign in to follow this  
msambasiva@gmail.com

New bee - XSLT issue

Recommended Posts

New bee - XSLT issue

Below is the code snippet for getting required output.
But I've to find out chapter title using on attribute value (linkend="CHAP_1").
In toc, there might be chance of missing chapter reference. In the toc section, if there is no reference for CHAP_3, then expected output should be as below.
XML:
=====
XML:
====
<?xml version = '1.0' encoding = 'UTF-8'?>
<book>
<toc id="TOC">
<title>Contents</title>
<itemizedlist>
<listitem>
<para>
<xref linkend="CHAP_1"/>
</para>
</listitem>
<listitem>
<para>
<xref linkend="CHAP_2"/>
</para>
</listitem>
<listitem>
<para>
<xref linkend="CHAP_4"/>
</para>
</listitem>
</itemizedlist>
</toc>
<chapter id="CHAP_1">
<title>Subject Areas</title>
</chapter>
<chapter id="CHAP_2">
<title>Business Questions</title>
</chapter>
<chapter id="CHAP_3">
<title>Job Roles</title>
</chapter>
<chapter id="CHAP_4">
<title>Duty Roles</title>
</chapter>
</book>

Expected HTML OUTPUT:(third item is missing from toc)
======================================================

Contents
• Subject Areas
• Business Questions
• Duty Roles

Subject Areas

Business Questions

Job Roles

Duty Roles

XSL:
=====
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="book/toc/title" /></title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="book">
<xsl:for-each select="chapter">
<ul>
<li><a href="#{@id}"><xsl:value-of select="title"/></a><br/></li>
</ul>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="chapter">
<xsl:variable name="Id" select="@id"/>
<h2> <a name="{$Id}"><xsl:value-of select="title"/></a></h2>
</xsl:template>
</xsl:stylesheet>

Thanks in advance,
Samba

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×