2012-08-30 50 views
0

使用XPath,如何確定日期或日期時間字段爲空還是空白?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不存在,我認爲它將是空/空白),這很容易完成。我想,首先(空白)值是不同的: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

+1

如果你需要一個有意義的和有用的答案,你需要提供一個小樣本XML文檔來解釋哪些節點具有日期值以及評估XPath表達式的結果應該是什麼。請編輯問題並指定缺少的重要信息。 –

回答

1

要檢查它是否填寫:

perDiemStart[text()] 

要檢查它是否是空/空:

perDiemStart[not(text())]