问题可能看起来很愚蠢,所以请原谅,但是有人可以解释一下dp:serialize的用法。dp:datapower中的序列化函数
我在某处读取它将节点集转换为字节流。
字节流意味着什么它指的是1和0?
另外请让我知道我们需要使用这个dp扩展功能的场景很少。
感谢
问题可能看起来很愚蠢,所以请原谅,但是有人可以解释一下dp:serialize的用法。dp:datapower中的序列化函数
我在某处读取它将节点集转换为字节流。
字节流意味着什么它指的是1和0?
另外请让我知道我们需要使用这个dp扩展功能的场景很少。
感谢
当您在XSLT处理之中的时候,你正在处理XML的所有位(输入文档,上下文节点,该节点集在XSL:变量)是而不是文本,它们是DataPower内存中的优化树。处理过程中可能会有某些地方需要将某些XML转换为文本。作为一个例子,也许你想加密它。 (只是原始的AES加密,没有那些花哨的OASIS XML加密标准。)这就是dp:serialize进来的地方。它会将内存中的节点集转换为包含XML语法文本的字符串。
代码。我们需要代码。
<xsl:variable name="my-node-set">
<xyzzy>
<plugh>Nothing happens.</plugh>
</xyzzy>
</xsl:variable>
<xsl:variable name="my-xml-string">
<dp:serialize select="$my-node-set"/>
</xsl:variable>
<xsl:variable name="my-ciphered"
select="dp:encode($alg-aes, $secret-key, $my-xml-string)"/>
如果你需要走另一条路 - 你已经有了,你是相当肯定是XML格式,并希望把它变成一个xsl的字符串:包含节点集变量(所以您可以使用XPath通过它来导航) - 那么你可以使用DP:解析:
<xsl:variable name="my-node-set"
select="dp:parse($my-string)"/>
我从来没有挺能找出原因,他们决定实施< DP:连载>作为一个扩展元素和dp:parse()作为扩展函数。对我来说似乎不对称。
感谢您的回复。请帮助我了解是否对于特定的xml块我总是希望它作为一个文本,我可以定义特定的块作为cdata这将帮助我实现与serialize相同的条件或两个功能都完全不同,并在不同的场景? – user3173953 2014-11-24 07:14:36