有没有办法正确连接三个任意XPath表达式,以产生一个新的有效XPath表达式?
更新:OP在评论中指出三个表达式选择文本节点.
在这种情况下,使用union运算符(|
)似乎是最合适的.
有没有办法正确连接三个任意XPath表达式,以产生一个新的有效XPath表达式?
有许多可能的方法可以做到这一点,其中一些可能会从了解评估的返回类型中受益.
总是"工作"的组合者之一(尽管可能并不总是有意义)是:
concat(Expr1, Expr2, Expr3)
Run Code Online (Sandbox Code Playgroud)
其他例子:
number(Expr1) + number(Expr2) + number(Expr3)
boolean(Expr1) or boolean(Expr2) or boolean(Expr3)
Run Code Online (Sandbox Code Playgroud)
如果表达式保证选择一个节点集,那么这个表达式(节点集的并集)也会组合它们:
Expr1 | Expr2 | Expr3
Run Code Online (Sandbox Code Playgroud)
在XPath 2.0中,此表达式应始终有效(连接到一系列项目):
Expr1 , Expr2 , Expr3
Run Code Online (Sandbox Code Playgroud)
或者这个:
if(boolean(Expr1))
then Expr2
else Expr3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
712 次 |
最近记录: |