2013-08-01 4 views
1

В XPath 1.0 есть ли способ проверить существование оцененного выражения и изменить результат от его имени?Тернарная логика в XPath для тестирования null

Я пытаюсь реализовать этот псевдо-код:

if ID is empty 
    then 0 + 1 
    else ID + 1 

Фактический код, до сих пор:

xdMath:Eval(xdMath:Max(
    xdXDocument:GetDOM("FetchID")/dfs:myFields/dfs:dataField‌​s/d:SharePointListItem_RW/d:ID), 
    'concat("(ID = ", (d:ID or 0) + 1,")")' 
) 

Это выражение не работает, когда нет ни одного пункта в списке, следовательно, max(d:ID) пуст.

ответ

2

Там, как правило, уродливые обходной путь, что-то вроде

concat("0", ID) + 1