'|' で区切られた非 xml テキスト ファイルを転送したい Datapower を使用して文字を xml に変換します。
Following is file (sample1)
10|20003|24/23/25|23890
これを次の XML に分割する必要があります。
<ResponseType>
<ResCode>10</ResCode>
<Id>20003</Id>
<SoftCode>24/23/25</SoftCode>
<StatusCode>23890</StatusCode>
</ResponseType>
私がしたことは次のことでした--
1>XML 以外のリクエストを受け取るサービスに変換アクションを作成します。
2>「このアクションで指定された XSLT を非 XML メッセージで使用する」を選択して、これがバイナリ変換であることを指定します。
3>次のスタイルシートを処理制御ファイルとしてアップロードします。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
version="1.0">
<dp:input-mapping href="sample1.ffd" type="ffd"/>
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:copy-of select="ResponseType"/>
<xsl:call-template name="str:tokenize">
<xsl:with-param name="string" select="string" />
</xsl:call-template>
</xsl:template>
<xsl:template name="str:tokenize">
<xsl:with-param name="string" select="">
str:tokenize('string', '|')
</xsl:with param>
</xsl:template>
</xsl:stylesheet>
これが私の sample1.ffd です (Datapower の local:// ディレクトリにアップロードしたものです)。
<File name="ResponseType">
<!-- capture all data into this tag -->
<Field name="ResCode/Id/SoftCode/StatusCode" />
</File>
しかし、目的の出力が得られません。私の xslt はかなり間違っていると思います。目的の出力を得るにはどうすればよいですか?