使用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不存在,我认为它将为null /空白)。我希望第一个(空白)值是不同的:departureDateTime节点的值
节点位置:
/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
答案 0 :(得分:1)
检查它是否已填满:
perDiemStart[text()]
检查它是否为空/ null:
perDiemStart[not(text())]
答案 1 :(得分:0)
基本上,他们通过在旧日期之后获取日期集(例如1900-01-01)然后使用'not'来查看将排除哪些节点来检测空日期。