Martin Honnen <ma*******@yahoo.de> wrote in message news:<41***********************@newsread2.arcor-online.net>...
Jijai wrote:
I need your help. I have spent almost one day to figure this out, here
is my problem:
In my dtd:
<!ELEMENT para (#PCDATA | math | link)+>
In my xml:
<para>
sentence1
<math>math equation</math>
sentence2
<link href="somewhere">link</link>
sentence3
</para>
I want to transform my xml into html by using an xsl, and i want to
change every <link> in <para> value there into <a href=".."> form. And
i also want to copy everything inside <math> into my html page. Is
there any solution for this?
You haven't shown us what HTML output you want so I can only guess:
<xsl:template match="para">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="link">
<a href="{@href}"><xsl:value-of select="." /></a>
</xsl:template>
<xsl:template match="math">
<xsl:apply-templates />
</xsl:template>
Oops, sorry, forgot to give the output, here is the output that i
want:
<p>
sentence1 <math>...</math> sentence2 <a href="..">link</a> sentence3
</p>
Anyway, i already tried your suggestion but the <math> tag is not
included in the output, i made a modification and it works :) thanks
man.
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="html"/>
<xsl:template match="doc">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="link">
<a href="{@href}"><xsl:value-of select="." /></a>
</xsl:template>
<xsl:template match="math">
<xsl:apply-templates select="." mode="math-ns-copy"/>
</xsl:template>
<xsl:template match="*" mode="math-ns-copy">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates mode="math-ns-copy"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>