我有十几个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>
答案 0 :(得分:0)
在XSLT样式表中引用的任何实体都需要在样式表本身中分别在样式表引用的任何外部DTD中声明。在XML输入中声明实体根本没有帮助。所以答案是否定的,在XML文档中声明实体不允许您在稍后用于转换XML的XSLT样式表中引用此类实体。