HTMLの出力用にXSLファイルを参照するXMLドキュメントがあります。
XSLファイルには"<xsl:value-of select="fieldname" />"
、XMLファイルの項目を参照するさまざまなタグを挿入しました。
ただし、マップしていないアイテムの場合、htmlページの下部に長い文字列として表示されますか?
XSLファイルで参照されていないすべてのxmlデータ項目を削除する必要が本当にありますか、それともこれに対するトリックまたはXSLファイルのバグがありますか?
j
これは、XSLT処理モデルの結果です。
XSLTは、ノードを処理する必要があり、XSLTコード内のテンプレートがそれに一致しない場合、*組み込みのテンプレート`を使用します。テキストノードに一致する組み込みテンプレートがそれをコピーします。
解決策:
テキストノード用のXSLT組み込みテンプレートをオーバーライドする次のテンプレートを追加します。
<xsl:template match="text()"/>
これにより、コード内のより具体的なテンプレートと一致しない(またはとコピーされないxsl:copy-of
)テキストノードはxsl:value-of
無視されます(「削除」)。