【问题标题】:Extract XML From Binary从二进制文件中提取 XML
【发布时间】:2012-12-12 15:18:24
【问题描述】:

我有一个二进制文件,其中包含字节 2-43 中的 xmldata。 我将如何将该数据提取到文件中?

我可以像这样提取小整数字段:

Row.TenderNumber = BitConverter.ToInt16(Row.RawBytesraw, 44);

但是,我不知道如何从这个文件中提取 xml 数据。 任何帮助表示赞赏。

【问题讨论】:

    标签: c# vb.net


    【解决方案1】:

    这样的东西应该可以工作

        using (var stream = new MemoryStream(<byte[] here>))
        using (var reader = new StreamReader(stream))
        {
            var buffer = new char[41];
            stream.Seek(<offset where string begins>, SeekOrigin.Begin);
            reader.Read(buffer, 0, 41);
            <mystringVariable> = new string(buffer);
        }
    

    我是用 C# 编写的,但你明白了。

    【讨论】:

    • 那么在您的示例中,我如何从 Row.RawBytesraw 中获取字节 2-43 并将其输出到变量?
    • 实际上,我的意思是,如果您的字节数组仅包含字节 2 - 43,则只需返回 new StreamReader(new MemoryStream(myBytes)).ReadToEnd(); -- 这将自动检测编码等 -- 现在这当然只是一个字符串 -- 可选地,您可以跳过字符串并将内存流传递到您的 xml 解析器 -- 或者您可以保留字符串并将其传递到您的xml 解析器。 -- 只是选择问题。
    【解决方案2】:

    xml 数据只是格式正确的文本。如果您可以从文件中提取字节,则可以将它们转换为字符串。并且字符串可以是 XML。

    看看这个问题:binary file to string

    【讨论】:

    • 我不明白你链接了什么。我提到它是一个文件,但它实际上来自数据库。当我尝试实现您链接中的内容时,它只是空白。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2016-01-10
    • 2014-02-15
    • 2016-07-06
    • 2017-11-20
    相关资源
    最近更新 更多