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();

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

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

}

}

相关推荐
小先生81223 分钟前
.NET Core后台任务队列
.net·.netcore
游乐码1 小时前
c#万物之父装箱拆箱
开发语言·c#
GIS程序猿1 小时前
批量出图工具,如何使用C#实现动态文本
开发语言·arcgis·c#·arcgis插件·gis二次开发
量子物理学1 小时前
三、C#高级进阶语法——特性(Attribute)
java·算法·c#
量子物理学2 小时前
四、C#高级进阶语法——委托(Delegate)
开发语言·c#
bepeater12343 小时前
Laravel9.X核心特性全面解析
c语言·c++·c#·php
MoFe13 小时前
【.net core】【watercloud】动态数据转换为静态表格,或者表格数据返回需要后处理
.netcore
lpfasd1234 小时前
Markdown 导出 Word 文档技术方案
开发语言·c#·word
松叶似针4 小时前
Flutter三方库适配OpenHarmony【doc_text】— parseDocxXml:正则驱动的 XML 文本提取
xml·flutter
m5655bj5 小时前
通过 C# 将 PPT 文档转换为 HTML 格式
c#·html·powerpoint