如何解析xml文件,大神请进,在线等

baopeng10 2018-08-02 09:46:55
如何从xml文件中读取数据,并将读取的数据插入表中,哪位大神帮帮忙,表结构如下
create table grade (njbh char(20),bjbh char(20),bjmc char(60),rs int) --年级编号1、班级编号1、班级名称1、人数
create table director (njbh char(20),rybh char(30),rymc char(30),zz char(100)) --年级编号1、班主任编号、班主任名称、住址
create table certificate (njbh char(20),rybh char(30),zsbh char(30),zsmc char(30),hdsj char(10)) --年级编号1、班主任编号、证书编号、证书名称、获得时间
create table Student (njbh char(20),bjbh char(30),rybh char(30),rymc char(30),dh char(20),zz qchar(100))-- 年级编号1、班级编号、学生编号、学生名称、电话、住址
create table subject (njbh char(20),bjbh char(30),rybh char(30),subject char(30),cj float) --年级编号1、班级编号、学生编号、数学、成绩

xml格式如下
<?xml version="1.0" encoding="UTF-8" ?>
<ATTR>
<SENDER>CCM</SENDER>
<RECEIVER>EES</RECEIVER>
<TIME>2016-6-29 11:55:00</TIME>
<PRODUCT>
<PRODUCTCODE>学校编号</PRODUCTCODE>
<PRODUCTNAME>学校名称</PRODUCTNAME>
<PARTLIST>
<PART>
<PPARTCODE>年级编号1</PPARTCODE>
<PARTCODE>班级编号1</PARTCODE>
<PARTNAME>班级名称1</PARTNAME>
<PARTCOUNT>人数</PARTCOUNT>
<PROCPLAN>
<PROCPLANCODE>班主任编号</PROCPLANCODE>
<PROCPLANNAME>班主任名称</PROCPLANNAME>
<PROCPLANVERSION>住址</PROCPLANVERSION>
<MATERIAL>
<MATERIALNO>证书编号</MATERIALNO>
<MATERIALNAME>证书名称</MATERIALNAME>
<MATERIALPH>获得时间</MATERIALPH>
</MATERIAL>
<PROCESSLIST>
<PROCESS>
<PROCESSNO>学生号1</PROCESSNO>
<PROCESSNAME>学生名称1</PROCESSNAME>
<PROCESSCONT>电话</PROCESSCONT>
<PROCESSHOUR>家庭住址</PROCESSHOUR>
<FLLIST>
<FL>
<FLNO>数学</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
<FL>
<FLNO>语文</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
</FLLIST>
</PROCESS>
<PROCESS>
<PROCESSNO>学生号2</PROCESSNO>
<PROCESSNAME>学生名称2</PROCESSNAME>
<PROCESSCONT>电话</PROCESSCONT>
<PROCESSHOUR>家庭住址</PROCESSHOUR>
<FLLIST>
<FL>
<FLNO>数学</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
<FL>
<FLNO>语文</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
</FLLIST>
</PROCESS>
</PROCESSLIST>
</PROCPLAN>
</PART>
<PART>
<PPARTCODE>年级编号1</PPARTCODE>
<PARTCODE>班级编号2</PARTCODE>
<PARTNAME>班级名称2</PARTNAME>
<PARTCOUNT>人数</PARTCOUNT>
<PARTTYPE>家庭住址</PARTTYPE>
<PROCPLAN>
<PROCPLANCODE>班主任编号</PROCPLANCODE>
<PROCPLANNAME>班主任名称</PROCPLANNAME>
<PROCPLANVERSION>住址</PROCPLANVERSION>
<MATERIAL>
<MATERIALNO>证书编号</MATERIALNO>
<MATERIALNAME>证书名称</MATERIALNAME>
<MATERIALPH>获得时间</MATERIALPH>
</MATERIAL>
<PROCESSLIST>
<PROCESS>
<PROCESSNO>学生号1</PROCESSNO>
<PROCESSNAME>学生名称1</PROCESSNAME>
<PROCESSCONT>电话</PROCESSCONT>
<PROCESSHOUR>家庭住址</PROCESSHOUR>
<FLLIST>
<FL>
<FLNO>数学</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
<FL>
<FLNO>语文</FLNO>
<FLNAME>成绩</FLNAME>
</FL>

</FLLIST>
</PROCESS>
<PROCESS>
<PROCESSNO>学生号2</PROCESSNO>
<PROCESSNAME>学生名称2</PROCESSNAME>
<PROCESSCONT>电话</PROCESSCONT>
<PROCESSHOUR>家庭住址</PROCESSHOUR>
<FLLIST>
<FL>
<FLNO>数学</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
<FL>
<FLNO>语文</FLNO>
<FLNAME>成绩</FLNAME>
</FL>
</FLLIST>
</PROCESS>
</PROCESSLIST>
</PROCPLAN>
</PART>
</PARTLIST>
</PRODUCT>
</ATTR>
...全文
320 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baopeng10 2018-08-06
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
https://www.cnblogs.com/sjqq/p/6933017.html 直接xml反序列化
最终还是采用反序列化,自己已经弄出来 ,感谢
xuzuning 2018-08-03
  • 打赏
  • 举报
回复
            XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("xml文件");
foreach (XmlNode x in xmlDoc.SelectNodes("//*")) //先全部看一下
{
Console.WriteLine("{0} {1}", x.Name, x.FirstChild is XmlText ? x.FirstChild.InnerText : " ");
}
再急也得一步一步来
baopeng10 2018-08-03
  • 打赏
  • 举报
回复
引用 7 楼 sp1234 的回复:
xml 解析器很多,找本教程自己学习一下如何使用 xml 解析。
现在急用啊
  • 打赏
  • 举报
回复
xml 解析器很多,找本教程自己学习一下如何使用 xml 解析。
  • 打赏
  • 举报
回复
baopeng10 2018-08-02
  • 打赏
  • 举报
回复
引用 2 楼 guwei4037 的回复:
xmldocument和xdocument两种方式。 https://blog.csdn.net/chinacsharper/article/details/9246627 https://blog.csdn.net/chinacsharper/article/details/16824427
能给出具体代码不,我是小白
masanaka 2018-08-02
  • 打赏
  • 举报
回复
用linq to xml算是比较简单的方式,如果你的xml文件不是很大的话。
https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml
https://stackoverflow.com/questions/7119806/reading-data-from-xml

你也可以用XmlReader,相对自己需要写的解析代码会比较多。
https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmlreader?view=netframework-4.7.2
  • 打赏
  • 举报
回复
https://blog.csdn.net/starfd/article/details/48686239
先生成Xml对应的实体类,然后再反序列化,当然通过VS生成的实体类代码可能需要做下调整
baopeng10 2018-08-02
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
https://www.cnblogs.com/sjqq/p/6933017.html 直接xml反序列化
版主能把我的例子简单写下不?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧