1

XPath を使用して、日付または日時フィールドが null か空白かを確認するにはどうすればよいですか?

XPath if ステートメントの代用として concat メソッドを使用しています。

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 という 2 つの日付/時刻フィールドがあります。繰り返しテーブルでは、次の 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

4

2 に答える 2

1

満たされているかどうかを確認するには:

perDiemStart[text()]

空/nullかどうかを確認するには:

perDiemStart[not(text())]
于 2012-11-30T13:40:39.937 に答える
0

これは役に立ちますか?http://blogs.msdn.com/b/syamp/archive/2011/03/13/fim-2010-xpath-how-to-check-null-value-on-a-datetime-attribute.aspx

基本的に、古い日付 (1900-01-01 など) より後の日付のセットを取得し、「not」を使用してどのノードが除外されるかを確認することで、null 日付を検出します。

于 2012-08-30T00:28:24.830 に答える