![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: Parsing Augmented XHTML to XHTML using XSL >Thread Next - Re: Parsing Augmented XHTML to XHTML using XSL Re: Parsing Augmented XHTML to XHTML using XSLTo: NULL Date: 3/21/2008 1:11:00 PM
Aaron Gray wrote:
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns="http://www.w3.org/TR/xhtml1/strict">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
That is not an XHTML namespace, the namespace for XHTML 1 is
http://www.w3.org/1999/xhtml.
> <xsl:output method="html" encoding="UTF-8"/>
> <xsl:template match="/">
> <html>
> <head>
> <xsl:copy-of select="/html/head"/>
> </head>
> <body>
> <xsl:copy-of select="/html/body"/>
> </body>
> </html>
> </xsl:template>
> </xsl:stylesheet>
>
> But reading from the input XHTML does not seem to work now :(
>
> I tried adding an xmlns:xhtml namespace but that did not want to work
> either.
You will have to decide what the output of the stylesheet should be,
whether you want HTML 4 with elements being in no namespace or whether
you want XHTML with elements being in the namespace
http://www.w3.org/1999/xhtml.
If the input is really XHTML (meaning elements in the XHTML namespace)
and you want HTML 4 output then you can't use xsl:copy or xsl:copy-of as
you then copy the elements including their namespace. Instead you need
to strip the namespace e.g.
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:template match="xhtml:*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
| ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
