如何在 XML 中嵌入二进制数据?

2022-08-31 09:19:24

我有两个用Java编写的应用程序,它们通过网络使用XML消息相互通信。我在接收端使用SAX解析器将数据从消息中取回。其中一个要求是在 XML 消息中嵌入二进制数据,但 SAX 不喜欢这样。有人知道如何做到这一点吗?

更新:我从apache commons编解码器库中获得了Base64类,以防其他人尝试类似的东西。


答案 1

您可以使用base64对二进制数据进行编码,并将其放入Base64元素中;下面的文章是关于这个主题的一篇相当不错的文章。

处理 XML 文档中的二进制数据


答案 2

XML 是如此通用...

<DATA>
  <BINARY>
    <BIT index="0">0</BIT>
    <BIT index="1">0</BIT>
    <BIT index="2">1</BIT>
    ...
    <BIT index="n">1</BIT>
  </BINARY>
</DATA>

XML就像暴力一样 - 如果它不能解决你的问题,你就没有使用足够的它。

编辑:

顺便说一句:Base64 + CDATA可能是最好的解决方案

(编辑2:
无论谁修改我,也请修改真正的答案。我们不希望任何可怜的灵魂来到这里并实际实施我的方法,因为它是SO上排名最高的,对吧?


推荐