gpt4 book ai didi

xslt - XSLT 命名空间声明中的排除结果前缀和扩展元素前缀有什么区别?

转载 作者:行者123 更新时间:2023-12-02 05:14:45 24 4
gpt4 key购买 nike

exclude-result-prefixesextension-element-prefix 之间有什么区别?两者都用在 XSLT 的 header 中。我在使用 EXSLT 和 EXSLT website Howto 时发现了 extension-element-prefixextension-element-prefix 用于“防止扩展 namespace 在结果树中输出”。

但是这不是真的(使用 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>

我使用 libxslt (xsltproc) 的输出:

<?xml version="1.0"?>
<blabla xmlns:exsl="http://exslt.org/common"/>

最佳答案

要使用诸如 http://exslt.org/common 命名空间中的 EXSLT 函数,您不需要 extension-element-prefix 属性。仅当您想在命名空间 http://exslt.org/functions 中使用诸如 func:function 之类的扩展元素时才需要这样做。 extension-element-prefix 属性只是表示带有该前缀的任何元素都不是文字结果元素,而是除 XSLT 语言定义的指令之外的扩展指令。

至于 exclude-result-prefixes,您已经理解了,它有助于避免在结果元素上声明任何 namespace ,因为在样式表中声明和使用的 namespace 仅用于选择路径表达式中的节点或匹配模式或用于插入扩展元素。

关于xslt - XSLT 命名空间声明中的排除结果前缀和扩展元素前缀有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com