4

我有一个项目,我需要对 xml 文件进行二进制 64 编码并将其放入另一个 xml。为了让它工作,我首先序列化 xml,dp:serialize然后使用dp:binary-encode它产生的变量。除了所有斯堪的纳维亚字符都被转义外,这很好用。当我解码结果时åäö就会出现。åäö

有任何想法吗?我已经尝试过dp:escaping="minimum"输出标签(xsl:output标签会影响dp:serialize吗?)和许多其他选项。通过在二进制 64 编码之前打印序列化结果,我看到在dp:serialize调用时添加了转义。

是否可以在不逃避 datapower 的情况下进行序列化?

4

1 回答 1

2

我不认为你可以在不转义的情况下进行序列化。DataPower 转义,例如“禁用输出转义”仅影响 OUTPUT 上下文,而不影响“内联”XML...

我认为您必须将其作为二进制数据处理并从 /object/message/node() 获取“未触及”的 XML 文件。

由于二进制节点不是“xml”,您可以直接对其进行编码:

<xsl:variable name="xmlInBase64" select="dp:binary-encode(/object/message/node())"/>
于 2014-02-27T14:54:10.970 回答