C#解析xml文件

1、示例

<?xml version="1.0" encoding="utf-8" standalone="no"?><DATA><ITEMS><ITEM><ID>01<ID/><CODE>0001<CODE><NAME>测试1<NAME/></ITEM><ITEM><ID>02<ID/><CODE>0002<CODE><NAME>测试2<NAME/></ITEM></ITEMS></DATA>

2、用DataTable存储

private DataTable GetDataTable(string xmlStr, string nodepath)

{

XmlDocument doc = new XmlDocument();

doc.LoadXml(xmlStr);

XmlNodeList xlist = doc.GetElementsByTagName(nodepath);

DataTable Dt = new DataTable();

DataRow Dr;

for (int i = 0; i < xlist.Count; i++)

{

Dr = Dt.NewRow();

XmlElement xe = (XmlElement)xlist.Item(i);

for (int j = 0; j < xe.Attributes.Count; j++)

{

if (!Dt.Columns.Contains(xe.Attributes[j].Name))

Dt.Columns.Add(xe.Attributes[j].Name);

Dr[xe.Attributes[j].Name] = xe.Attributes[j].Value;

}

for (int j = 0; j < xe.ChildNodes.Count; j++)

{

if (!Dt.Columns.Contains(xe.ChildNodes.Item(j).Name))

Dt.Columns.Add(xe.ChildNodes.Item(j).Name);

Dr[xe.ChildNodes.Item(j).Name] = xe.ChildNodes.Item(j).InnerText;

}

Dt.Rows.Add(Dr);

}

return Dt;

}

3、解析

string xmlfile="xml路径";

XmlDocument doc = new XmlDocument();

doc.Load(xmlfile);

string xmlData = doc.InnerXml;

DataTable table = GetDataTable(xmlData, "//ITEM");

if (table != null && table.Rows.Count > 0)

{

for (int i = 0; i < table.Rows.Count; i++)

{

DataRow row = table.Rows[i];

string id = row["ID"].ToString();

string code= row["CODE"].ToString();

string name= row["NAME"].ToString();

//将数据逐条存入数据库

//具体的存储方式根据实际情况编写代码

}

}

相关推荐
CallZhang21026 分钟前
Vision Master的C#脚本与opencv联合编程
opencv·计算机视觉·c#·视觉检测
AI视觉网奇33 分钟前
kafka 冲突解决 kafka安装
c#·linq
hqwest40 分钟前
C#WPF实战出真汁07--【系统设置】--菜品类型设置
开发语言·c#·wpf·grid设计·stackpanel布局
萘柰奈2 小时前
Unity进阶--C#补充知识点--【Unity跨平台的原理】Mono与IL2CPP
unity·c#·游戏引擎
程序设计实验室2 小时前
StarBlog v1.3.0 新版本,一大波更新以及迁移服务器部署
c#·aspnetcore·starblog番外
淡海水3 小时前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
淡海水3 小时前
【原理】Unity GC 对比 C# GC
unity·c#·gc·垃圾回收
张人玉3 小时前
C#读取文件, IO 类属性及使用示例
microsoft·c#
咕白m6258 小时前
通过 C# 高效提取 PDF 文本的完整指南
后端·c#
hqwest11 小时前
C#WPF实战出真汁08--【消费开单】--餐桌面板展示
c#·wpf·ui设计·wpf界面设计