Huu*_*uze 7 xslt foreach xpath filter
我有以下XSLT节点:
<xsl:for-each select="Book[title != 'Moby Dick']">
....
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
但是,我想在for-each中使用多个过滤器.我尝试了以下内容,但它似乎不起作用:
<!-- Attempt #1 -->
<xsl:for-each select="Book[title != 'Moby Dick'] or Book[author != 'Rowling'] ">
....
</xsl:for-each>
<!-- Attempt #2 -->
<xsl:for-each select="Book[title != 'Moby Dick' or author != 'Rowling']">
....
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
Dim*_*hev 21
但是,我想在for-each中使用多个过滤器
你真正的问题是XPath:在谓词中指定多个条件是否可能,以及如何?
答案:
是的,使用标准的XPath布尔运算符or和and标准的XPath函数not().
在这种特殊情况下,select属性中的XPath 可能是:
Book[title != 'Moby Dick' or author != 'Rowling']
Run Code Online (Sandbox Code Playgroud)
我个人总是喜欢写一个等价的表达式:
Book[not(title = 'Moby Dick') or not(author = 'Rowling')]
Run Code Online (Sandbox Code Playgroud)
因为!=当其中一个操作数是节点集时,操作符具有非直观行为.
但我猜你可能想要的是and两个比较 - 而不是or他们.
| 归档时间: |
|
| 查看次数: |
19953 次 |
| 最近记录: |