0

私は多数の xslt テンプレートを持っており、それらのほとんどは 1 つの特定のエンティティ (私の例では「ent」) を使用しています。これらのテンプレートを変更することはできませんが、出力された xml データを変更することはできます。

問題は、xml データで宣言されたエンティティを xslt スタイルシートに渡すことは可能かということです。私はこのようにしようとしていますが、失敗します:

XML ドキュメント

<!DOCTYPE xsl:stylesheet [<!ENTITY ent "World">]>

<?xml-stylesheet type='text/xsl' href='xslt.xslt'?>

<doc/>

XSL xslt.xslt

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<h1>Hello: &ent;</h1>

</xsl:template>

</xsl:stylesheet>

4

1 に答える 1

0

XSLT スタイルシートで参照されるエンティティは、スタイルシートが参照する外部 DTD でそれぞれスタイルシート自体で宣言する必要があります。XML 入力でエンティティーを宣言しても、まったく役に立ちません。答えはノーです。XML ドキュメントでエンティティを宣言しても、後で XML を変換するために使用される XSLT スタイルシートでそのようなエンティティを参照することはできません。

于 2011-12-05T13:21:59.267 に答える