c# - 如何从 XML 持久性格式文件导入/导出?
问题描述
我有一些看起来像这样的 XML 文件:
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='Idlog' rs:number='1'>
<s:datatype dt:type='i2' dt:maxLength='2' rs:precision='5' rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='ExpDate' rs:number='2' rs:writeunknown='true'>
<s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='0' rs:precision='16' rs:fixedlength='true'
rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='ExpOper' rs:number='3' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='30' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='ImpDate' rs:number='4' rs:nullable='true' rs:writeunknown='true'>
<s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='0' rs:precision='16' rs:fixedlength='true'/>
</s:AttributeType>
<s:AttributeType name='ImpOper' rs:number='5' rs:nullable='true' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='30'/>
</s:AttributeType>
<s:AttributeType name='MaxDate' rs:number='6' rs:nullable='true' rs:writeunknown='true'>
<s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='0' rs:precision='16' rs:fixedlength='true'/>
</s:AttributeType>
<s:AttributeType name='NameWS' rs:number='7' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='20' rs:maybenull='false'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row Idlog='1123' ExpDate='2019-02-11T16:06:00' ExpOper='szf' MaxDate='2019-02-08T09:24:00' NameWS='КЦ-0'/>
</rs:data>
</xml>
我需要将类从 C# 代码导出到这个 XML 模式。我试图找到一些信息,并找到了 ADO DB 和 MSSQL 的示例。我没有 MSSQL 服务器。我试图导出 DataSet,但我得到了另一个模式。我需要来自示例的相同架构。有任何想法吗?
解决方案
您可以使用 DataSet 读取并将结果放入数据集中。数据在 datatable["row"] 中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Data;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
DataSet ds = new DataSet();
ds.ReadXml(FILENAME, XmlReadMode.Auto);
}
}
}
推荐阅读
- c++ - 如何在类中定义 libusb_log_cb 函数?
- php - PHP - 检测预期会话
- c++ - 可变参数模板函数没有匹配的函数调用
- python-3.x - 创建频道时出现discord.py异常
- java - 在 Redisson RMap 中存储嵌套映射时的线程安全
- python - 在 Python 中连接两个列表的元素
- php - 检查值是否设置到 PHP 数组的元素中
- python-3.x - 网页抓取:尝试填写此网站上的表单时出现 ElementNotInteractableException
- php - Laravel websockets 聊天系统
- powerbi - 如何根据 Power BI 中的截止日期获取汇率?