c# - 如何使用 c sharp 代码从 XML 文件中存储和获取二进制数据
问题描述
在 XML 中如何将二进制数据存储到文件中。同样我需要获取数据。我尝试过使用其他一些示例代码,但我无法存储数据。我需要有关 XML 文件的更多信息以及用于 XML 读写代码的示例代码。这是将大型二进制数据存储到 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 );
}
我不太确定这样做是否是个好主意。为什么不将二进制数据保存在二进制文件中?
推荐阅读
- vba - 程序在 if 语句之前关闭 (CATIA VBA)
- powerbi - Power BI:如何计算源表中值的出现?
- python - 如何使用 Div 和 Script 标签在 HTML 中渲染两个或多个散景图?
- react-native - Webview&redabilitywebview 在 android 中工作正常而不是在 ios 中反应原生
- heroku - Heroku 自动对我的数据库进行维护,现在我的应用程序无法连接
- python - 使用 OpenCV 和 Python 提取楼层布局和阈值
- git - Git ignore ignoring too many things
- selenium - 如果元素在硒的 IF 中不可见,如何移动到 ELSE 条件
- asp.net - Onclick 图像按钮不起作用 Asp.net 网格视图
- java - Java将值添加到指向另一个ArrayList中的值的ArrayList