0

我有十几个 xslt 模板,其中大多数使用一个特定的实体(在我的示例中为“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 回答