2016-05-26 6 views
1

以下の拡張要素をシリアル化はXML入力です:DPによってシリアライズされ、XSLTを使用してのDataPowerのデータをデシリアライズする方法:

<?xml version="1.0" encoding="utf-8"?> 
 
    <Message>Hello</Message>

私はDPを使用してXMLの上にシリアライズしています:以下

<xsl:template match="/"> 
    <xsl:variable name="input"> 
     <dp:serialize select="/" omit-xml-decl="yes"/> 
    </xsl:variable> 
</xsl:template> 
のような要素をシリアル化

今、私はに変換し、と同じデータをanoter xslt内にデコードします。これを続行するにはどうすればいいですか?

+0

こんにちは、上記の入力は正しくないようです。それは有効なxmlではありません。それをもう一度確認できますか? –

+0

今よく見えます。 –

答えて

0

https://www.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/parse_element.htmlによれば、対応するdp:parse要素がありますので、<dp:parse select="$your-xml-data"/>とすることができます。

+0

まずはシリアル化して、同じデータを逆シリアル化する必要があります。 –

+0

'' 'を使ってシリアライズを解析しますか?私はDataPowerのユーザーではないので、私はこの問題を理解する手助けができません。 –

0

dp:parseは、拡張要素のいずれかとして利用することができます:

<xsl:variable name="parsed-nodeset"> 
    <dp:parse select="xmlstring"/> 
</xsl:variable> 

または拡張機能として:いずれの場合も

<xsl:variable name="parsed-nodeset" select="dp:parse(xmlstring)"/> 

xmlstringは、xsに解決する必要があります文字列があなたを含みますXML。 DPの両方の要素と機能のバージョン:あなたの入力

XML

<dp:parse select="b64string" encoding="base-64"/> 

dp:parse(b64string, 'base-64') 
0

: こんにちは文字列は、あなたのXMLのBase64でエンコードされたコピーとして扱われるべきであるというのDataPowerを伝えるオプションのパラメータを持つ解析

シリアル化:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dpfunc="http://www.datapower.com/extensions/functions" xmlns:dp="http://www.datapower.com/extensions" extension-element-prefixes="dp" exclude-result-prefixes="dp dpconfig"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/> 
    <xsl:template match="/"> 
     <xsl:variable name="input"> 
      <dp:serialize select="/" omit-xml-decl="yes"/> 
     </xsl:variable> 
    </xsl:template> 
</xsl:stylesheet> 

デシリアライズ:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dpfunc="http://www.datapower.com/extensions/functions" xmlns:dp="http://www.datapower.com/extensions" extension-element-prefixes="dp" exclude-result-prefixes="dp dpconfig"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/> 
    <xsl:template match="/"> 
     <xsl:variable name="Ouput" select="dp:parse($input)"/>> 
    </xsl:template> 
</xsl:stylesheet>