热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> XML编程>>正文内容

将 XML格式的 字符串,转化为DataSet

发布时间:2010年03月16日点击数: 佚名

将string xml文档转化为dataset

  1. /// <summary> 
  2.        /// 将string xml文档转化为dataset 
  3.        /// </summary> 
  4.        /// <param name="xmlData">传入xml字符串</param> 
  5.        /// <returns>返回dataset</returns> 
  6.        public static DataSet ConvertXMLToDataSet(string xmlData) 
  7.        { 
  8.            StringReader stream = null
  9.            XmlTextReader reader = null
  10.            try 
  11.            { 
  12.                DataSet xmlDS = new DataSet(); 
  13.                stream = new StringReader(xmlData); 
  14.                reader = new XmlTextReader(stream); 
  15.                xmlDS.ReadXml(reader); 
  16.                return xmlDS; 
  17.            } 
  18.            catch (Exception ex) 
  19.            { 
  20.                string strTest = ex.Message; 
  21.                return null
  22.            } 
  23.            finally 
  24.            { 
  25.                if (reader != null
  26.                    reader.Close(); 
  27.            } 
  28.        } 

一下是测试的数据和说明:
示例一 :

  1. string xmlStr = @"<result> 
  2.                 <return value=""1""/>  <!-- 生成第1个DataTable --> 
  3.                 <account value=""JAHN521""/> <!-- 生成第2个DataTable --> 
  4.                 <password value="" EFF6697FA18E29B7CEAEA78FBC2963F1""/> <!-- 生成第3个DataTable --> 
  5.                 <state value=""1""/> <!-- 生成第4个DataTable --> 
  6.                 <signature value=""7373F804A68A82AB2273074231CC8874""/> <!-- 生成第5个DataTable --> 
  7.                </result>"; 
  8. DataSet ds = ConvertXMLToDataSet(xmlStr); 

返回包含5个DataTable的DataSet
第1个DataTable的name为:return
DataTable的存储方式:
value
1

第2个DataTable的 name为:account
DataTable的存储方式:
value
JAHN521

第3个DataTable的name为:snailorder
DataTable的存储方式:
value
EFF6697FA18E29B7CEAEA78FBC2963F1

第4个DataTable的name 为:prop
DataTable的存储方式:
value
1

第5个DataTable的name为:signature
DataTable的存储方式:
value
7373F804A68A82AB2273074231CC8874
示例二:

  1.   xmlStr = @"<result> 
  2.                 <return value=""1""/> <!-- 生成第1个DataTable --> 
  3.     <totalCount value=""6589""/> <!-- 生成第2个DataTable --> 
  4.    <serverworld id=""1"" value=""1869""/> <!-- 以下4行生成第3个DataTable --> 
  5.     <serverworld id=""2"" value=""1233""/> 
  6.     <serverworld id=""3"" value=""1235""/> 
  7.     <serverworld id=""4"" value=""2252""/> 
  8.               </result>"; 
  9. DataSet ds = ConvertXMLToDataSet(xmlStr); 

返回包含3个DataTable的DataSet
第1个DataTable的name为:return
DataTable的存储方式:
value
1

第2个DataTable的 name为:totalCount
DataTable的存储方式:
value
6589

第3个DataTable的name为:serverworld
DataTable的存储方式:
id
value
1
1869
2
1233
3
1235
4
2252
示例三:

  1. xmlStr = @"<result> 
  2.             <return value=""1""/><!-- 生成第1个DataTable --> 
  3.             <account value=""SNAILTEST""/><!-- 生成第2个DataTable --> 
  4.             <snailorder no=""20080802-101-0000000053"" points=""625""><!-- 生成第3个DataTable --> 
  5.                 <prop code=""412335"" amount=""3""/><!-- 生成第4个DataTable --> 
  6.                 <prop code=""322089"" amount=""2""/> 
  7.                 <prop code=""611890"" amount=""6""/> 
  8.             </snailorder> 
  9.             <snailorder no=""20080802-101-0000000256"" points=""1625""> 
  10.                 <prop code=""412335"" amount=""10""/> 
  11.                 <prop code=""611890"" amount=""6""/> 
  12.             </snailorder> 
  13.             <snailorder no=""20080802-101-0000000789"" points=""1300""> 
  14.                 <prop code=""412335"" amount=""3""/> 
  15.                 <prop code=""322089"" amount=""2""/> 
  16.                 <prop code=""611890"" amount=""6""/> 
  17.                 <prop code=""678003"" amount=""6""/> 
  18.             </snailorder> 
  19.             <signature value=""425A14E9C4717CF06DCA26180C2EF7F5""/><!-- 生成第5个DataTable --> 
  20.             </result>"; 
  21. DataSet ds = ConvertXMLToDataSet(xmlStr); 

返回包含5个DataTable的DataSet
第1个DataTable的name为:return
DataTable的存储方式:
value
1

第2个DataTable的 name为:account
DataTable的存储方式:
value
SNAILTEST

第3个DataTable的name为:snailorder
DataTable的存储方式:
snailorder_Id
no
points
0
20080802-101-0000000053
625
1
20080802-101-0000000256
1625
2
20080802-101-0000000789
1300

第4个DataTable的name 为:prop
此为三个 snailorder 节点下的子项的合集,生成的Datatable中字段 snailorder_Id 对应 名字为 snailorder 的Table中的字段 snailorder_Id
DataTable的存储方式:
code
amount
snailorder_Id
412335
3
0
322089
2
0
611890
6
0
412335
10
1
611890
6
1
412335
3
2
322089
2
2
611890
6
2
678003
6
2

第5个DataTable的name为:signature
DataTable的存储方式:
value
425A14E9C4717CF06DCA26180C2EF7F5

本站热点业务

更多模板/案例展示

热门推荐

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作