首页 > 解决方案 > 如何使用 c sharp 代码从 XML 文件中存储和获取二进制数据

问题描述

在 XML 中如何将二进制数据存储到文件中。同样我需要获取数据。我尝试过使用其他一些示例代码,但我无法存储数据。我需要有关 XML 文件的更多信息以及用于 XML 读写代码的示例代码。这是将大型二进制数据存储到 XML 文件中的最佳方式吗?

标签: c#xml

解决方案


Base64 是一种很好的方法。这是一种将二进制数据转换为可以保存的文本的方法。

写:

public void WriteBinaryToXElement( XElement element, byte[] data )
    => element.Value = Convert.ToBase64String( data, 0, data.length );

读:

public byte[] ReadBinaryFromXElement( XElement element )
    => Convert.FromBase64String( element.Value );

如何使用:

// load XML
XElement rootNode = XElement.Load( @"Path\to\XML" );

// find nodes
foreach ( var binaryNode in XElement.Element( "DataNodes" ).Elements() )
{
    // read data
    byte[] data = ReadBinaryFromXElement( binaryNode );

    // do stuff with data

    // save back to XML
    WriteBinaryToXElement( binaryNode, data );
}

我不太确定这样做是否是个好主意。为什么不将二进制数据保存在二进制文件中?


推荐阅读