2016-04-20 21 views
0

IBM Datapowerに2つのXSL変換が次々とあります。そのうちの最初にはURLを開いて電話をかけて、一部を返しますバイナリーNODEそのノードには、JSON docが入った.gzアーカイブが入っています。第2の変換は以下の通りです:IBM DatapowerでXSLTを実行した後のJSON出力

<xsl:output method="text" encoding="utf-8" indent="yes" media-type="application/json"/> 
<dp:input-mapping type="ffd" href="local:///binaryNode.ffd"/> 

<xsl:variable name="input64" select="dp:binary-encode(/object/message/node())"/> 

<xsl:template match="/"> 
    <xsl:message terminate="no" dp:priority="alert" dp:type="all">input64<xsl:copy-of select="$input64"/></xsl:message> 
    <xsl:variable name="outputJson" select="dp:inflate($input64, 'gzip')"/> 
    <xsl:copy-of select="$outputJson"/> 
</xsl:template> 

バイナリノードは、最初のBase64文字列($ input64)に変換した後、DPでアンパック:機能を膨らませます。 $ outputJson変数には必ずJSON文字列が含まれています。しかし、XSLT出力は命令<xsl:copy-of select="$outputJson"/>にもかかわらず空の文字列です。出力時にJSONを取得するにはどうすればよいですか?あなたは、「出力」でそれをラップする必要があるXSLTバイナリから出力何かに

答えて

0

<object> 
    <message> 
     <xsl:copy-of select="$outputJson"/> 
    </message> 
</object> 

私はしかし、代わりにコンテキスト変数を使用することを検討します:

<dp:set-variable name="'var://context/JSON/output'" value="$outputJson" /> 
関連する問題