Как с помощью XPath определить, является ли поле даты или даты и времени нулевым или пустым?
Я использую метод concat в качестве замены оператора XPath if.
concat(
substring(../preceding-sibling::my:PerDiem[1]/my:perDiemEnd, 1, ../preceding-sibling::my:PerDiem[1]/my:perDiemEnd = "" * string-length(../preceding-sibling::my:PerDiem[1]/my:perDiemEnd)),
substring(/my:ExpenseForm/my:ExpenseHeader/my:departureDateTime, 1, not(../preceding-sibling::my:PerDiem[1]/my:perDiemEnd = "") * string-length(/my:ExpenseForm/my:ExpenseHeader/my:departureDateTime))
)
Дополнительная информация: в Infopath 2010 повторяющаяся таблица имеет два поля даты/времени, которые называются perDiemStart и perDiemEnd. В повторяющейся таблице следующий perDiemStart является предыдущим perDiemEnd. Это легко сделать, если значение perDiemStart по умолчанию равно ../preceding-sibling::my:PerDiem[1]/my:perDiemEnd
.
Но для первого perDiemStart (поскольку предыдущего perDiemEnd не существует, я предполагаю, что он будет нулевым/пустым). Я хочу, чтобы это первое (пустое) значение было другим: значение узла offsetDateTime
Расположение узлов:
/my:ExpenseForm/my:ExpenseHeader/my:departureDateTime
/my:ExpenseForm/my:PerDiemDetails/my:PerDiems/my:PerDiem/my:perDiemStart
/my:ExpenseForm/my:PerDiemDetails/my:PerDiems/my:PerDiem/my:perDiemEnd