有没有办法正确连接三个任意XPath表达式,以产生一个新的有效XPath表达式?

时间:2010-11-01 17:54:48

标签: xpath expression

有没有办法正确连接三个任意XPath表达式以产生新的有效XPath表达式?

2 个答案:

答案 0 :(得分:5)

更新:OP已在评论中指出三个表达式选择文本节点。

在这种情况下,使用union运算符(|)似乎是最合适的。


  

有没有正确的方法   连接三个任意XPath   表达式导致新的有效   XPath表达式?

有很多可行的方法,其中一些可能会从了解评估的返回类型中获益。

总是“有效”的组合者之一(虽然可能永远不会有意义)是:

concat(Expr1, Expr2, Expr3)

其他示例:

number(Expr1) + number(Expr2) + number(Expr3)

boolean(Expr1) or boolean(Expr2) or boolean(Expr3)

如果保证表达式选择节点集,那么这个表达式(节点集的并集)也会组合它们:

Expr1 | Expr2 | Expr3

在XPath 2.0中,此表达式应始终有效(连接到一系列项目):

Expr1 , Expr2 , Expr3

或者这个

  if(boolean(Expr1))
    then Expr2
    else Expr3

答案 1 :(得分:0)

不确定。如果它们是不相交的,那么你用“或”语句将它们分开。如果它们是附加的,那么你可以在它们上面做一个(.net)Path.Combine()。