这个问题可能看起来很愚蠢,所以请原谅,但有人可以解释一下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()实现为扩展函数。 对我来说似乎不对称。