0

我所拥有的:使用ChilkatDotNet4Xml类创建的 XML 文件,该文件中的某个节点具有二进制内容(下面代码中的数据是字节数组)。传递的 zipFlag 以SetBinaryContent显示内容将被压缩。如何创建文件:

var zipFlag = true;
var ecryptFlag = false;
var password = string.empty;

var xml = new Xml();
var node = xmlFile.FindChild("SomeNode");
node.SetBinaryContent(data, zipFlag, ecryptFlag, password); //in file it is base64 text

我需要的是:用 读取这个文件System.Xml.XmlDocument,并从“SomeNode”节点获取二进制内容。

我尝试过:读取“SomeNode”的 innerText,使用 获取字节数组FromBase64String,然后使用 解压缩GZipStream,但得到了InvalidDataException (GZip 标头中的幻数不正确。确保您传递的是 GZip 流)

我坚信有人已经面临同样的问题。

4

1 回答 1

1

二进制数据是 deflate 算法的输出(没有包含它的 GZip 结构)。我怀疑 System.IO.Compression.DeflateStream 会这样做。

于 2015-09-12T11:17:49.927 回答