XPath中管道符号(|)的含义是什么?结合实例求解
XSLT中管道符号
|的含义解析 在XPath(XSLT依赖的节点选择语言)里,|是节点集合并运算符,和你最初理解的逻辑“或”不是一回事:
- 逻辑“或”用
or表示,用来判断两个条件的真假,返回布尔值; - 而
|的作用是把两个独立的节点集合合并成一个,并且自动去除重复的节点,最终返回的是节点集合,不是布尔值。
针对你给出的这段代码:
<xsl:for-each select="$vTerm/termVocabulary | $vDefaults/termCat[not($vTerm/termVocabulary)]">
可以拆解成实际逻辑:
- 先尝试选取变量
$vTerm下的termVocabulary节点; - 只有当
$vTerm里不存在termVocabulary节点时,才会选取变量$vDefaults下的termCat节点; - 用
|把这两种情况的节点合并,最终for-each会遍历的是:要么是$vTerm/termVocabulary的节点,要么是$vDefaults/termCat的节点,不会同时遍历两者——这本质是一种“兜底”逻辑。
内容的提问来源于stack exchange,提问作者Greg Gregerson
相关产品推荐
相关产品推荐

