Hi, I have the following XML:
<HTML>
<HEAD>
<META name="GENERATOR" content="Microsoft HTML Help Workshop 4.1" />
<!-- Sitemap 1.0 -->
</HEAD>
<BODY>
<OBJECT type="text/site properties">
<param name="FrameName" value="contents" />
</OBJECT>
<UL>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title1" />
<param name="Local" value="Ref1" />
</OBJECT>
<UL>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title 2" />
<param name="Local" value="Ref2" />
</OBJECT>
<UL>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title3" />
<param name="Local" value="Ref3" />
</OBJECT>
</LI>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title4" />
<param name="Local" value="Ref4" />
</OBJECT>
</LI>
</UL>
</LI>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title5" />
<param name="Local" value="Ref5" />
</OBJECT>
</LI>
</UL>
</LI>
<LI>
<OBJECT type="text/sitemap">
<param name="Name" value="Title6" />
<param name="Local" value="Ref6" />
</OBJECT>
</LI>
</UL>
</BODY>
</HTML>
I need to transform it to an "Eclipse Help" format toc.xml
file, like this:
<toc label="Sample Table of Contents">
<topic label="Title1" href="Ref1">
<topic label="Title2" href="Ref2">
<topic label="Title3" href="Ref3"/>
<topic label="Title4" href="Ref4"/>
</topic>
<topic label="Title5" href="Ref5">
</topic>
</topic>
<topic label="Title6" href="Ref6"/>
</toc>
I tried to create the following XSLT, which didn't work:
<?xml version="1.0" encoding="utf-8"?>
<?altova_samplexml D:\Documents and Settings\oshecht\Desktop\XSL\Copy of toc.xml?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<toc>
<xsl:apply-templates select="//LI" />
</toc>
</xsl:template>
<xsl:template match="//LI">
<topic>
<xsl:apply-templates select="OBJECT/param" mode="val" />
<xsl:apply-templates select="OBJECT/param" mode="ref" />
<xsl:apply-templates select="/UL/LI" />
<!--xsl:apply-templates select="//UL//LI" mode="subelement" /-->
</topic>
</xsl:template>
<xsl:template match="OBJECT/param" mode="val">
<xsl:if test="@name = 'Name'">
<xsl:attribute name="label">
<xsl:value-of select="@value" />
</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="OBJECT/param" mode="ref">
<xsl:if test="@name = 'Local'">
<xsl:attribute name="href">
<xsl:value-of select="@value" />
</xsl:attribute>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Can you please advise?
Thanks:)