在XSL中,是否可以使用xsl命名空间来定义一个实体?
In Sorting in XSLT 中使用了以下代码:
<!-- xq439.xsl: converts xq436.xml into xq440.txt -->
<!DOCTYPE stylesheet [
<!ENTITY space "<xsl:text> </xsl:text>">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
...
当我尝试用 xsltproc 做类似的事情时,收到了如下警告:
namespace warning : Namespace prefix xsl was not found
<xsl:text>
^
而使用实体时,得到空的 <text/> 元素(而不是把 <xsl:text> 的内容加入进去)。
可以正确地做到吗?
解决方案
正如评论中所述,这个错误似乎只在 libxslt 处理器上出现。我的测试表明,通过简单地修正错误信息中明确指出的问题即可避免它:
<!DOCTYPE stylesheet [
<!ENTITY space "<xsl:text xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> </xsl:text>">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。