3

他の誰かが Altova Mapforce を使用してくれることを願っています。

XSLT を使用して 1 つの xml を別の xml に変換すると、ソース XML では日付が M/D/YYYY になっているため、それらを標準の日時形式に変換する必要があります。

それで、私は XSLT のトークナイズ機能を使用して分割/パーツを取得して遊んでいます。今、パート 1 を取り、その日だと言いたいのですが、トークナイズ式の結果を変数に割り当てる方法がわかりませんマップフォース。

他の誰かがこれをしますか?むしろ、文字列の日付を日時に変換する最良の方法は何ですか?

アイデアをありがとう

編集。私の入力は文字列 '1/31/2012' で、出力は xs:dateTime (または xs:date を dateTime に簡単に変換できると仮定すると、xs:date) である必要があります。

文字列を連結して YYYY-MM-DD 形式に変換するメソッドをセットアップしましたが、これは dateTime に対して無効であるとまだ報告されています (キャストに失敗しました、無効な字句値 2012-1-31)。

おそらく、YYYY-MM-DD は dateTime の有効な形式ではありませんか?

4

3 に答える 3

1

これを行うためのコンポーネントを作成することになりました。私の特定の問題は、「2012-1-31」を日付またはdateTimeにフォーマットできないことですが、2012-01-31はフォーマットできます。そのため、日付としてキャストする前に、数値をフォーマットして文字を埋め込むだけで簡単になりました。

于 2012-06-25T15:10:01.780 に答える
0

ライブラリから xs:datetime / format-dateTime を使用できます

于 2014-01-17T11:57:23.820 に答える
0

この例では EXSLT を使用しています (XSLT 2.0 にアクセスできないため)。

<xsl:variable name='date_parts' select='str:split(root/date, "/")' />
<xsl:value-of select='concat($date_parts[3],$date_parts[1],$date_parts[2])' />

このplaygorundセッションでテストできます

于 2012-06-22T23:32:48.457 に答える