I came up with this XSL that seems to work, except for a few questions:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
version="1.0"
encoding="iso-8859-1"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="*[(_at_)id='subTemplateHere']/node()">
<xsl:apply-templates
select="document('SubTemplate.html')//*[(_at_)id='subTemplate']" />
</xsl:template>
<xsl:template match="*[(_at_)id='componentHere']/node()">
<xsl:apply-templates
select="document('Component.html')//*[(_at_)id='component']" />
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
When I run it at the command line with Java 1.4.2's XSL processor I get
these lines:
Using original entity definition for """.
Using original entity definition for "&".
Using original entity definition for "<".
Using original entity definition for ">".
Using original entity definition for "'".
...for the HTML file I'm processing plus the HTML files read in with the
document() call.
And, my script elements now have this xml:space attribute on them:
<script type="text/javascript"
src="http://reviews.cnet.com/html/js/rev/cms.js" xml:space="preserve">
</script>
I don't need that in my HTML. How would I suppress it?
Is there a mode I can tell XSL to output XHTML ?
-Justin
Andreas L. Delmelle wrote:
Perhaps you want something like:
...
<xsl:template match="td[(_at_)id='subTemplateHere']">
<xsl:apply-templates
select="document('./SubTemplate.html')//*[(_at_)id='subTemplate']" />
</xsl:template>
...
<xsl:template match="td[(_at_)id='componentHere']">
<xsl:apply-templates
select="document('./Component.html')//*[(_at_)id='component']" />
</xsl:template>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list