I have some list in a XML file and I like to transform these into HTML view using XSLT. But it is not performing as per requirement. Mostly in case of nesting it creates problem.
XML:
<list id="ch4list2" list-type="simple">
<list-item id="ch4_li18"><p id="ch4p65"><italic>Enzymes involved in neurotransmitter biosynthesis and degradation</italic></p>
<list id="ch4list3" list-type="simple">
<list-item id="ch4_li19"><p id="ch4p66">Tyrosine hydroxylase</p></list-item>
<list-item id="ch4_li20"><p id="ch4p67">Tryptophan hydroxylase</p></list-item></list>
</list-item></list>
<list id="ch4list2" list-type="number">
<list-item id="ch4_li18"><p id="ch4p65"><italic>Enzymes involved in neurotransmitter biosynthesis and degradation</italic></p>
<list id="ch4list3" list-type="bullet">
<list-item id="ch4_li19"><p id="ch4p66">Tyrosine hydroxylase</p></list-item>
<list-item id="ch4_li20"><p id="ch4p67">Tryptophan hydroxylase</p></list-item></list>
</list-item></list>
<list id="ch4list2" list-type="upper-roman">
<list-item id="ch4_li18"><p id="ch4p65"><italic>Enzymes involved in neurotransmitter biosynthesis and degradation</italic></p>
<list id="ch4list3" list-type="number">
<list-item id="ch4_li19"><p id="ch4p66">Tyrosine hydroxylase</p></list-item>
<list-item id="ch4_li20"><p id="ch4p67">Tryptophan hydroxylase</p></list-item></list>
</list-item></list>
**XSLT i am using:**
<xsl:stylesheet version="2.0" xmlns:xsl="http://ift.tt/tCZ8VR" xmlns:xlink="http://ift.tt/PGV9lw" xmlns:m="http://ift.tt/M2cV0i" xmlns:mml="http://ift.tt/M2cV0i">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="list">
<xsl:choose>
<xsl:when test="@list-type='number'">
<ol>
<xsl:apply-templates/>
</ol>
</xsl:when>
<xsl:when test="@list-type='simple'">
<ul style="list-style-type:none">
<xsl:apply-templates/>
</ul>
</xsl:when>
<xsl:when test="@list-type='bullet'">
<ul style="list-style-type:disc">
<xsl:apply-templates/>
</ul>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="list-item">
<xsl:choose>
<xsl:when test="count(../ancestor::list)=1">
<li>   <xsl:apply-templates/></li>
</xsl:when>
<xsl:when test="count(../ancestor::list)=2">
<li>      <xsl:apply-templates/></li>
</xsl:when>
<xsl:when test="count(../ancestor::list)=3">
<li>         <xsl:apply-templates/></li>
</xsl:when>
</xsl:choose>
</xsl:template>
**Output in explorer/mozilla should be:**
<ul style="list-style-type:none">
<li><i>Enzymes involved in neurotransmitter biosynthesis and degradation</i>
<ul style="list-style-type:none">
<li>Tyrosine hydroxylase</li>
<li>Tryptophan hydroxylase</li></ul></li>
</li></ul>
<ol type="1">
<li><i>Enzymes involved in neurotransmitter biosynthesis and degradation</i>
<ul>
<li>Tyrosine hydroxylase</li>
<li>Tryptophan hydroxylase</li></ul>
</li></ol>
<ol type="A">
<li><i>Enzymes involved in neurotransmitter biosynthesis and degradation</i>
<ol type="1">
<li>Tyrosine hydroxylase</li>
<li>Tryptophan hydroxylase</li></ol>
</li></ol>
Please any solution will be appreciate.
No comments:
Post a Comment