Я пытаюсь преобразовать веб-страницу XHTML, используя XSLT, извлекая некоторые ее части.Например, я хотел бы извлечь части HEAD и BODY отдельно (это только первый шаг, следующий будет извлекать некоторые элементы div) и использовать их в моем выходном документе XHTML.Вот код XSLT:
<xsl:stylesheet version="2.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xhtml xsl xs">
<xsl:output
method="html"
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"
indent="yes"/>
<xsl:template match="/">
<HTML>
<xsl:apply-templates/>
</HTML>
</xsl:template>
<xsl:template match="xhtml:HTML/xhtml:BODY">
<xsl:copy-of select="." disable-output-escaping="yes" />
</xsl:template>
<xsl:template match="xhtml:HTML/xhtml:HEAD">
<xsl:copy-of select="." disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
В качестве входного XHTML у меня есть www.wordpress.org/about исходный код (проверка).В качестве первого запускается очиститель neko (HTML-> XHTML), а затем мое преобразование xslt.Когда я смотрю на выходной код, все выглядит примерно так:
Оригинальный код: codepad.org/5D7MCXSkКод после преобразования: http://codepad.org/fGzyAwF2
За исключением случаев, когда я открываю его в веб-браузере, я получаю "белую стену" - ничего не появляется.Я заметил, что в исходном коде преобразованного сайта (как в Chrome, так и в Firefox) синтаксис подсвечивается вплоть до закрывающего тега HEAD.Это очень странно, и я считаю, что это вызывает проблему.
Любая помощь будет очень признательна.Заранее спасибо