1

嗨,我想像这样通过套接字 xml 发送。

<root>
  <image ID='2'>
    <![CDATA[ binary data with image ]]>
  </image>
</root>

我有问题,因为图像是二进制数据,而其他部分是字符串。我要发送多张图片,我需要有 ID。

主要问题是如何处理二进制数据和字符串数据。我试图将图像转换为 str 但我无法恢复它。

4

2 回答 2

2

嵌入二进制的一种有用方法xml是对其进行 base64 编码。例如,这是XAML用于发送小图像的方法。您可以在代码中的某处这样做:

import base64
img = open('some.png',rb').read()
base64.b64encode(img)

# append it to your buffer

另一方面:

#get the img portion in the buffer
import base64
img = base64.b64decode(fetched_img)
# write it to disk or whatever

这是处理XML.

使用base64很简单,这是解释器中的一个例子:

In [1]: import base64
In [4]: base64.b64encode('example')
Out[4]: 'ZXhhbXBsZQ=='
In [5]: base64.b64decode('ZXhhbXBsZQ==')
Out[5]: 'example'

您可以在此处阅读文档

希望这可以帮助!

于 2013-06-25T14:39:31.430 回答
0

只需将套接字作为二进制连接 - 无论如何你可能都不关心换行符转换。

于 2013-06-25T14:40:12.333 回答