随后使用具有不同上下文的相同 XSLT 密钥。语义取决于 XSLT 版本或 XSLT 引擎?
Using same XSLT key with different contexts subsequently. Semantics depends on XSLT version or XSLT engine?
以这个例子:
仅将 XSLT 版本从 1.0 更改为 2.0,我得到了不同的结果。
v1.0 的结果是:<result>111</result>
(很明显,键是在第一次使用时用上下文初始化的,并且保持不变)。但随着 v2.0。结果是:<result>1 61 61 6</result>
似乎只要上下文发生变化,密钥就会重新初始化。
我的问题是,这是因为 XSLT 1.0 版与 2.0 版语义不同,还是由不同的 XSLT 引擎和相同的 XSLT 版本引起的?谢谢
xsl:value-of
的语义在 XSLT 2 中发生了变化;而在 XSLT 1.0 <xsl:value-of select="some-expression"/>
outputs a text node with the string value of the first node selected by some-expression
in XSLT 2 中,一个包含 space 分隔的文本节点(更一般地说,如果存在 separator
属性的值),将创建所有选定项目的字符串值序列。
支持 XPath 1 backwards compatibility mode 的 XSLT 2 或 3 处理器将使用 XSLT 1 行为,其中使用 xsl:version="1.0"
或 version="1.0"
。
以这个例子:
仅将 XSLT 版本从 1.0 更改为 2.0,我得到了不同的结果。
v1.0 的结果是:<result>111</result>
(很明显,键是在第一次使用时用上下文初始化的,并且保持不变)。但随着 v2.0。结果是:<result>1 61 61 6</result>
似乎只要上下文发生变化,密钥就会重新初始化。
我的问题是,这是因为 XSLT 1.0 版与 2.0 版语义不同,还是由不同的 XSLT 引擎和相同的 XSLT 版本引起的?谢谢
xsl:value-of
的语义在 XSLT 2 中发生了变化;而在 XSLT 1.0 <xsl:value-of select="some-expression"/>
outputs a text node with the string value of the first node selected by some-expression
in XSLT 2 中,一个包含 space 分隔的文本节点(更一般地说,如果存在 separator
属性的值),将创建所有选定项目的字符串值序列。
支持 XPath 1 backwards compatibility mode 的 XSLT 2 或 3 处理器将使用 XSLT 1 行为,其中使用 xsl:version="1.0"
或 version="1.0"
。