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 に答える