私はしようとしているXSLT変換に関する問題に遭遇しています。全体のプロジェクトでは、データベースのアップロードのためにXML文書をCSVファイルに変換するように取り組んでいます。問題は、XMLがISO8601形式(YYYY-MM-DDT00:00:00)の属性値として日付を送信することですが、データベースがCSVファイルから取得するためには、MM/DD/YYYYに変換する必要があります。ここでフォーマットXSLTを使用したXML属性値の日付
は、XMLのサンプルです:
<GetChanged>
<UserInformation>
<Column Name="id" Value="555555555"/>
<Column Name="name" Value="Kevin"/>
<Column Name="bday" Value="1990-01-01T00:00:00"/>
</UserInformation>
</GetChanged>
は、ここで私が使用しようとしているXSLTです:しかし
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:csv="csv:csv">
<xsl:output method="text"/>
<xsl:template match="GetChanged">
<!-- header -->
<xsl:text>"id","name","bday" </xsl:text>
<!-- data rows -->
<xsl:for-each select="UserInformation">
<!-- data cells -->
<xsl:for-each select="Column[@Name='id']">
<xsl:text>"</xsl:text>
<xsl:value-of select="@Value"/>
<xsl:text>"</xsl:text>
</xsl:for-each>
<xsl:text>,</xsl:text>
<xsl:for-each select="Column[@Name='name']">
<xsl:text>"</xsl:text>
<xsl:value-of select="@Value"/>
<xsl:text>"</xsl:text>
</xsl:for-each>
<xsl:text>,</xsl:text>
<xsl:for-each select="Column[@Name='bday']">
<xsl:text>"</xsl:text>
<xsl:value-of select="format-date(@Value, '[M01]/[D01]/[Y0001]')"/>
<xsl:text>"</xsl:text>
</xsl:for-each>
<xsl:if test="position()!=last()">
<xsl:text>,</xsl:text>
</xsl:if>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
、私は鋸山を使用してルビーを介してこれを実行すると、私はエラーを取得して終わります:
RuntimeError:ランタイムエラー:要素値- XPath評価が結果を返しませんでした
この日付を適切にフォーマットするために何ができるか考えてみませんか?
ありがとうございます!
は、あなたのプロセッサがXSLT 2.0をサポートしていますか? –