如果在xPath / xQuery中有条件

时间:2012-08-01 08:28:31

标签: xml xpath if-statement concatenation

要连接xpath的结果,我正在使用concat(normalize-space(.), '
')(感谢Dimitre Novatchev)。

现在我想知道如何避免在最后一个元素之后添加
 ...我正在考虑类似的事情:concat(normalize-space(.), if(XXXXX) then '
' else '')但我无法弄清楚我有什么条件使用

例如,如果我使用xpathExpression/concat(normalize-space(.), ',')并且所请求的值是(字符串)A& B& C& D,我期望的输出是A,B,C,D而不是A,B,C,D, ....因此表达式可能变为:xpathExpression/concat(normalize-space(.), if(this is the last element D) then '' else ',')

1 个答案:

答案 0 :(得分:1)

如果您使用的是XQuery或XPath 2.0,则可以使用字符串连接功能,例如

string-join(//author, ', ')

会给你一个像

这样的结果
Fleming, Rowling, Pullmann

如果您使用的是XPath 1.0,则没有简单的等效内容 - 但是从您的问题中确切地说不清楚上下文是什么。