|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] xslt & doctype problem
I have a problem whereby if I include an xhtml doctype declaration in my
html then my xslt templates always match the wildcard. Ive constructed a simple demonstration of a problem Im having, hoping a sage older hand can tell me where Ive gone wrong. It includes a simple transform, and two xhtml files which have two minor differences: in the second I include the DOCTYPE declaration, and can thus use the nbsp by name. If I process them with xalan 2.7 (I had similar problems with msxml, and switched because I hoped xalan might be different) the 'head' and 'body' tags in the second file is always matched by the wildcard template. java.exe -classpath %CLASSPATH% org.apache.xalan.xslt.Process -IN dummy.html -XSL dummy-clean.xslt java.exe -classpath %CLASSPATH% org.apache.xalan.xslt.Process -IN dummy2.html -XSL dummy-clean.xslt Hoping its something stupid (and thus easy to fix) -G. ----- clean.xslt --------------------------------- <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="4.0" encoding="iso-8859-1" indent="yes" omit-xml-declaration="yes"/> <!-- start at root of document -->
<xsl:template match="/">
<xsl:message terminate="no">
Trace: root -<xsl:value-of select="name()" />-
</xsl:message>
<html>
<xsl:apply-templates select="*" />
</html>
</xsl:template><xsl:template match="html">
<xsl:message terminate="no">
Trace: html
</xsl:message>
<xsl:copy>
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template><xsl:template match="head">
<xsl:message terminate="no">
Trace: head
</xsl:message>
<xsl:copy>
<xsl:if test="not(title)">
<title> No Title Given </title>
</xsl:if>
<xsl:apply-templates />
</xsl:copy>
</xsl:template><xsl:template match="body">
<xsl:message terminate="no">
Trace: body
</xsl:message>
<xsl:copy>
<h1>
<!-- potentially empty header -->
<xsl:copy-of select="../head/title" />
</h1>
<xsl:apply-templates mode="inner" />
</xsl:copy>
</xsl:template><!-- copy generic nodes -->
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:message terminate="no">
Trace: generic -<xsl:value-of select="name()" />-
</xsl:message>
<xsl:apply-templates />
</xsl:copy>
</xsl:template><!-- copy generic nodes without trace --> <xsl:template mode="inner" match="*"> <xsl:copy> <xsl:copy-of select="@*" /> <xsl:apply-templates mode="inner" /> </xsl:copy> </xsl:template> </xsl:transform> ------------------------------------------
----dummy2.html-------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta name="fish" value="Carp" /> </head> <body> <h1>carp</h1> <p>Im not going to harp on about carp</p> <p>Just going to include a simple </p> </body> </html> ------------------------------------------
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








