the*_*arv 18 xslt namespaces exslt
exclude-result-prefixes
和之间有什么区别extension-element-prefix
?两者都用在XSLT的头文件中.我发现extension-element-prefix
在使用EXSLT和EXSLT网站时Howto说它extension-element-prefix
用于"阻止扩展命名空间在结果树中输出".
但事实并非如此(使用libxslt).仅exclude-result-prefixes
删除扩展名称空间.那么我为什么需要extension-element-prefix
???
样品:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common" version="1.0"
extension-element-prefix="exsl">
<xsl:template match="/">
<blabla/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我的输出与libxslt(xsltproc):
<?xml version="1.0"?>
<blabla xmlns:exsl="http://exslt.org/common"/>
Run Code Online (Sandbox Code Playgroud)
Mar*_*nen 12
要使用类似命名空间中的EXSLT函数,http://exslt.org/common
您不需要该extension-element-prefix
属性.只有在想要使用func:function
命名空间中的扩展元素时才需要这样做http://exslt.org/functions
.该extension-element-prefix
属性仅表示具有该前缀的任何元素不是文字结果元素,而是除了由XSLT语言定义的那些指令之外的扩展指令.
至于exclude-result-prefixes
你已经明白了,它有助于避免对结果元素的任何名称空间声明,因为在样式表中声明和使用的名称空间只能选择路径表达式中的节点或匹配模式或用于插入扩展元素.