dp:datapower 中的序列化函数



这个问题可能看起来很愚蠢,所以请原谅,但有人可以解释一下dp:serialize的用法吗?

我在某处读到它将节点集转换为字节流。

字节流指的是 1 和 0 是什么意思?

另外,请让我知道我们需要使用此dp扩展函数的几种情况。

谢谢

当您在 XSLT 处理过程中时,您正在处理的所有 XML 位(输入文档、上下文节点、xsl:variables 中的节点集)都不是文本,它们是 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:variable(这样你就可以使用XPath来浏览它)——那么你可以使用dp:parse:

<xsl:variable name="my-node-set"
    select="dp:parse($my-string)"/>

我一直无法弄清楚为什么他们决定将<dp:serialize>实现为扩展元素,将dp:parse()实现为扩展函数。 对我来说似乎不对称。

相关内容

  • 没有找到相关文章

最新更新