XSLT: "test"结果困惑

标签 xslt testing

我发现虽然此测试返回 true:

test="string-length(foo) = 0"

但是,由于某些原因,这两个测试都返回 false:

test="foo = ''"

test="foo = null"

知道会发生什么吗? foo 是否可能处于其他状态,导致长度为 0,但仍不等于 '' 或 null?

此外 - 如果我输出:

X<xsl:value-of select="foo" />X

outputs: XX

最佳答案

如果 foo 是空节点集,则 string(foo) 为“”,并且 string-length(foo) 为零,但 foo = '' 为假。 XPath 充满惊喜。

解释是 foo = "" 并不像您预期​​的那样意味着 string(foo) = "",而是 一些 $F in foo 满足 $F = "" (您可以在 XPath 2.0 中完整编写)。如果 foo 是一个空集,那么存在性测试显然是错误的。

关于XSLT: "test"结果困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098499/

相关文章:

php - 在 Symfony4 单元测试中创建多个实体

.net - 如何识别 IWebElement

xslt - 在 for-each 中仅显示一次标题

xml - 如何嵌套xsl :for-each selec

python - 在 Python 的单元测试中使用 doctest "result parser"?

jquery - 实时测试 jQuery 选择器

javascript - 使用 Java 在样式表中展开全部或全部折叠

xml - xslt 将所有节点复制到变量

asp.net - Web.config转换作为第一个子项插入

testing - 如何检测 URL 是否在加载页面时触发