XSLTを使用してXHTMLの一部を抽出してXHTML Webページを変換しようとしています。例えば、HEADとBODYの部分を別々に抽出したいのですが(最初のステップですが、次にdivをいくつか抽出します)、それらを出力XHTMLドキュメントで使用します。ここにXSLTコードがあります:xsltを使用してxhtmlを変換する - ウェブブラウザで表示する際の問題
<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
を除き、私は、Webブラウザで開いたときに、私は「白い壁」を取得します - 何も表示されません。私は、変換されたサイトのソースコード(chromeとfirefoxの両方)の構文が閉じるHEADタグまで強調表示されていることに気付きました。それは非常に奇妙で、問題を引き起こしていることです。
ご協力いただきますようお願い申し上げます。事前
達成したいことは明確ではありませんe、スタイルシートのルート要素には、XHTML要素を出力することを示唆する 'xmlns =" http://www.w3.org/1999/xhtml "があります。あなたの 'xsl:output'は、あなたがXHTML文書を出力したいことを示唆しています。しかし、XHTMLは大文字と小文字を区別し、その要素と属性はすべて小文字であると定義されているので、なぜ名前が 'HTML'のリテラルな結果要素があるのか理解できません。したがって、結果要素に小文字の要素名と属性名を使用することは、変換によって生成される意味のあるXHTML結果ドキュメントを作成するための第一歩です。 –
(最初のコメントは2番目のコメントが長すぎます)。入力がXHTMLで、パターンのXHTML要素に一致させたい場合は、小文字の名前も必要です。 'match =" xhtml:html/xhtml:head "'それでも問題が解決しない場合は、変換結果をtext/htmlとして、またはapplication/xmlやapplication/xmlなどのXML MIMEタイプで処理するかどうか、そして2番目に作成する結果ドキュメントから2つのことを教えてくださいあなたの入力。 –
変換クライアント側またはサーバー側を実行していますか?あなたのContent-Typeヘッダは何ですか? –