xml文件解析到DATASET

问题描述

<?xmlversion="1.0"encoding="GBK"standalone="true"?><output><dataset><row><a1>1001</a1><a2>张三</a2><datasetxm><row><kc>语文</kc><cj>120</cj></row><row><kc>数学</kc><cj>130</cj></row><row><kc>英语</kc><cj>140</cj></row></datasetxm></row><row><a1>1002</a1><a2>李四</a2><datasetxm><row><kc>语文</kc><cj>110</cj></row><row><kc>数学</kc><cj>130</cj></row><row><kc>英语</kc><cj>120</cj></row></datasetxm></row></dataset></output>解析结果放在DataSet中,然后显示在datagridview里得到如下结果:a1a2kccj1001张三语文1201001张三数学1301001张三英语1401002李四语文1101002李四数学1301002李四英语120

解决方案

解决方案二:
就两个步骤先用xmldocument或linq的xdocument去读取xml,然后就是用他们去逐级读取节点值,然后在datatable中增加row和column,把值填进去就是了
解决方案三:
引用1楼bdmh的回复:

就两个步骤先用xmldocument或linq的xdocument去读取xml,然后就是用他们去逐级读取节点值,然后在datatable中增加row和column,把值填进去就是了

能不能给个代码?
解决方案四:
引用2楼HQB313的回复:

Quote: 引用1楼bdmh的回复:
就两个步骤先用xmldocument或linq的xdocument去读取xml,然后就是用他们去逐级读取节点值,然后在datatable中增加row和column,把值填进去就是了

能不能给个代码?

版主已经说的很明确了,方法都给你了亲,增加row无非就是DataTabledt=newDataTable();dt.Rows.Add();
解决方案五:
http://bbs.csdn.net/topics/390759551
解决方案六:

解决方案七:
使用linqtoXml的XElement相应的方法读取节点读取节点后转乘相对应的类,到集合。
解决方案八:
sqlserver中的处理方法:DECLARE@DOCNVARCHAR(MAX),@HANDINT;SET@DOC=N'<output><dataset><row><a1>1001</a1><a2>张三</a2><datasetxm><row><kc>语文</kc><cj>120</cj></row><row><kc>数学</kc><cj>130</cj></row><row><kc>英语</kc><cj>140</cj></row></datasetxm></row><row><a1>1002</a1><a2>李四</a2><datasetxm><row><kc>语文</kc><cj>110</cj></row><row><kc>数学</kc><cj>130</cj></row><row><kc>英语</kc><cj>120</cj></row></datasetxm></row></dataset></output>';EXECSP_XML_PREPAREDOCUMENT@HANDOUTPUT,@DOC;SELECT*FROMOPENXML(@HAND,'/output/dataset/row/datasetxm/row',2)WITH(a1nvarchar(10)'../../a1',a2nvarchar(10)'../../a2',kcnvarchar(100)'./kc',cjnvarchar(100)'./cj');EXECSP_XML_REMOVEDOCUMENT@HAND

解决方案九:
可以看看这个
解决方案十:
System.Data.DataSetds=newSystem.Data.DataSet();ds.ReadXml("你xml文件地物理绝对路径")即可,当然自然读取出来地表结构也许会和你想地稍微有些差异。不过问题不大datagridview本身也支持多层级地对象显示
解决方案十一:
由于格式的特殊性,需要调整格式,先从XML读取各元素,再重新调整写到datatable中,方法是比较笨些,参考一下(把你格式修改一下,将row-.data,不然提示错误),期待更好的方法。DataSetds=newDataSet("output");ds.ReadXml("t.xml");//直接读出,就用dataGridView1.DataSource=ds.Tables[0].DefaultView;达不到你要的结果,格式是分行的//读取张三数据stringid1=ds.Tables["row"].Rows[0]["a1"].ToString();stringname1=ds.Tables["row"].Rows[0]["a2"].ToString();stringzy1=ds.Tables["data"].Rows[0]["kc"].ToString();stringzy2=ds.Tables["data"].Rows[0]["cj"].ToString();stringzs1=ds.Tables["data"].Rows[1]["kc"].ToString();stringzs2=ds.Tables["data"].Rows[1]["cj"].ToString();stringze1=ds.Tables["data"].Rows[2]["kc"].ToString();stringze2=ds.Tables["data"].Rows[2]["cj"].ToString();//读取李四数据stringid2=ds.Tables["row"].Rows[1]["a1"].ToString();stringname2=ds.Tables["row"].Rows[1]["a2"].ToString();stringly1=ds.Tables["data"].Rows[3]["kc"].ToString();stringly2=ds.Tables["data"].Rows[3]["cj"].ToString();stringls1=ds.Tables["data"].Rows[4]["kc"].ToString();stringls2=ds.Tables["data"].Rows[4]["cj"].ToString();stringle1=ds.Tables["data"].Rows[5]["kc"].ToString();stringle2=ds.Tables["data"].Rows[5]["cj"].ToString();//增加表头DataTabledt=newDataTable();dt.Columns.Add("a1");dt.Columns.Add("a2");dt.Columns.Add("kc");dt.Columns.Add("cj");//增加行数据DataRowdr=dt.NewRow();dr["a1"]=id1;dr["a2"]=name1;dr["kc"]=zy1;dr["cj"]=zy2;dt.Rows.Add(dr);DataRowdr1=dt.NewRow();dr1["a1"]=id1;dr1["a2"]=name1;dr1["kc"]=zs1;dr1["cj"]=zs2;dt.Rows.Add(dr1);DataRowdr2=dt.NewRow();dr2["a1"]=id1;dr2["a2"]=name1;dr2["kc"]=ze1;dr2["cj"]=ze2;dt.Rows.Add(dr2);DataRowdr3=dt.NewRow();dr3["a1"]=id2;dr3["a2"]=name2;dr3["kc"]=ly1;dr3["cj"]=ly2;dt.Rows.Add(dr3);DataRowdr4=dt.NewRow();dr4["a1"]=id2;dr4["a2"]=name2;dr4["kc"]=ls1;dr4["cj"]=ls2;dt.Rows.Add(dr4);DataRowdr5=dt.NewRow();dr5["a1"]=id2;dr5["a2"]=name2;dr5["kc"]=le1;dr5["cj"]=le2;dt.Rows.Add(dr5);dataGridView1.DataSource=dt;

解决方案十二:
<?xmlversion="1.0"encoding="GBK"standalone="true"?>修改为<?xmlversion="1.0"encoding="GBK"standalone="yes"?>
解决方案十三:

解决方案十四:
把Xml文件的数值转到dataset然后再从dataset转到Excel文件,最后就是一个excel文件,这样的操作咋完成呢?

时间: 2024-12-21 08:24:56

xml文件解析到DATASET的相关文章

从xml文件解析到dataset,将dataset导入SQL数据库?

问题描述 从xml文件解析数据传给dataset,现在想把dataset的数据导入到sql数据库中,是新建表(表列名为dataset的列名)加数据导入?怎么写代码?谢谢! 解决方案 解决方案二:参照http://taiyangly.blog.163.com/blog/static/13711553420101121111646250/解决方案三:先createtable,再insert,就行了啊解决方案四:1:使用linqtoxml读取xml文件2:根据读取到集合中的的XElement转换成类对

Android平台基于Pull方式对XML文件解析与写入方法详解_Android

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地

android编程之XML文件解析方法详解(附源码)_Android

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8

Android学习笔记之AndroidManifest.xml文件解析(详解)_Android

一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置. 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)

Android开发之XML文件解析的使用_Android

前言  本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML解析的一个标准接口.XML文件解析一般有2种方法,DOM和SAX.其中DOM需要先将xml文档全部读入到电脑内存中,当文档内容太大时,该方法并不适用.SAX就比较好的解决了该问题,它是逐行解析的,可以随时中断.但是SAX的操作比较复杂.因此,这2种方法各有优缺点,看具体应用情况.在前面的文章Qt学习

Android开发之XML文件解析的使用

前言 本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML解析的一个标准接口.XML文件解析一般有2种方法,DOM和SAX.其中DOM需要先将xml文档全部读入到电脑内存中,当文档内容太大时,该方法并不适用.SAX就比较好的解决了该问题,它是逐行解析的,可以随时中断.但是SAX的操作比较复杂.因此,这2种方法各有优缺点,看具体应用情况.在前面的文章Qt学习之

Android平台基于Pull方式对XML文件解析与写入方法详解

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地

android编程之XML文件解析方法详解(附源码)

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8

急!xml文件解析的问题!大家帮帮忙!

问题描述 怎么将xml文件里的信息解析出来,并输出到asp.net2.0页面上.谢谢大家. 解决方案 解决方案二:用datatable直接load那个需要解析的xml然后把gridview的数据源绑定为这个datatable.....解决方案三:不是这个意思,我是想把信息提取出来.例如:<CustomerInfoID="001"CustomerJobName="Book"CustomerOrderID="ICSsample"><