p2p.wrox.com Forums

p2p.wrox.com Forums (http://p2p.wrox.com/index.php)
-   XSLT (http://p2p.wrox.com/forumdisplay.php?f=86)
-   -   Create reference for attribute value (http://p2p.wrox.com/showthread.php?t=99338)

msambasiva@gmail.com January 17th, 2017 01:07 AM

Create reference for attribute value
 
Hello,
I am a new bee to XSL transformation. I have been assigned with XML transformation. It would be great help if you can help on this.
Below are the sample XML and expected html output
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_3"/>
</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>

HTML OUTPUT: By clicking on hyper link, it should redirect to corresponding sections
Contents
Subject Areas
Business Questions
Job Roles
Duty Roles
Subject Areas
Business Questions
Job Roles
Duty Roles

Please let me know, if you need more details on this.

Thanks in advance,
Samba.

mhkay January 17th, 2017 05:22 AM

What part of the problem did you find difficult, where did you get stuck? Can you show us your efforts so far? Without this information, you are just asking us to write the code for you, and this is not a free coding service.

msambasiva@gmail.com January 17th, 2017 06:10 AM

Below is the code snippet for getting required output. Looks working fine.
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.

Contents
Subject Areas
Business Questions
Duty Roles
Subject Areas

Business Questions

Job Roles

Duty Roles

<?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>


All times are GMT -4. The time now is 11:53 PM.

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.