首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • c#处理xml数据如何格式化成Dataset [已结贴,结贴人:Amo860129]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-19 16:36:44 楼主
    我做了一个webservices 返回Dataset.getXml().toString();,返回的是string格式
    写的测试程序调用方法得到的数据格式是这样的;
    这是string 格式的
    "
    <NewDataSet>
      <Table>
        <DATAID>1 </DATAID>
        <XTSJBH>1 </XTSJBH>
        <CODE>01        </CODE>
        <YYBH>000000000000000001715130000618 </YYBH>
        <ZT>1000000000 </ZT>
        <ID>94899 </ID>
        <XM>徐宁 </XM>
        <CSNY>1983-06-02T00:00:00+08:00 </CSNY>
        <JG>411302 </JG>
        <MZ>01 </MZ>
        <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ>
        <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ>
        <SFZH>411302198306060577 </SFZH>
        <BM>017773 </BM>
        <NL>24 </NL>
        <YGBH>200029 </YGBH>
        <SSGW />
        <XB>1 </XB>
        <LXFS>13849056961 </LXFS>
        <ZW>剧场音响管理 </ZW>
        <SFDK>02 </SFDK>
        <XRRQ>20080615  </XRRQ>
        <GXRQ>20080616  </GXRQ>
      </Table>
    </NewDataSet> <NewDataSet>
      <Table>
        <DATAID>1 </DATAID>
        <XTSJBH>1 </XTSJBH>
        <CODE>01        </CODE>
        <YYBH>000000000000000001715130000618 </YYBH>
        <ZT>1000000000 </ZT>
        <ID>94899 </ID>
        <XM>徐宁 </XM>
        <CSNY>1983-06-02T00:00:00+08:00 </CSNY>
        <JG>411302 </JG>
        <MZ>01 </MZ>
        <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ>
        <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ>
        <SFZH>411302198306060577 </SFZH>
        <BM>017773 </BM>
        <NL>24 </NL>
        <YGBH>200029 </YGBH>
        <SSGW />
        <XB>1 </XB>
        <LXFS>13849056961 </LXFS>
        <ZW>剧场音响管理 </ZW>
        <SFDK>02 </SFDK>
        <XRRQ>20080615  </XRRQ>
        <GXRQ>20080616  </GXRQ>
      </Table>
    </NewDataSet> <NewDataSet>
      <Table>
        <DATAID>1 </DATAID>
        <XTSJBH>1 </XTSJBH>
        <CODE>01        </CODE>
        <YYBH>000000000000000001715130000618 </YYBH>
        <ZT>1000000000 </ZT>
        <ID>94899 </ID>
        <XM>徐宁 </XM>
        <CSNY>1983-06-02T00:00:00+08:00 </CSNY>
        <JG>411302 </JG>
        <MZ>01 </MZ>
        <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ>
        <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ>
        <SFZH>411302198306060577 </SFZH>
        <BM>017773 </BM>
        <NL>24 </NL>
        <YGBH>200029 </YGBH>
        <SSGW />
        <XB>1 </XB>
        <LXFS>13849056961 </LXFS>
        <ZW>剧场音响管理 </ZW>
        <SFDK>02 </SFDK>
        <XRRQ>20080615  </XRRQ>
        <GXRQ>20080616  </GXRQ>
      </Table>
    </NewDataSet> <NewDataSet>
      <Table>
        <DATAID>1 </DATAID>
        <XTSJBH>1 </XTSJBH>
        <CODE>01        </CODE>
        <YYBH>000000000000000001715130000618 </YYBH>
        <ZT>1000000000 </ZT>
        <ID>94899 </ID>
        <XM>徐宁 </XM>
        <CSNY>1983-06-02T00:00:00+08:00 </CSNY>
        <JG>411302 </JG>
        <MZ>01 </MZ>
        <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ>
        <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ>
        <SFZH>411302198306060577 </SFZH>
        <BM>017773 </BM>
        <NL>24 </NL>
        <YGBH>200029 </YGBH>
        <SSGW />
        <XB>1 </XB>
        <LXFS>13849056961 </LXFS>
        <ZW>剧场音响管理 </ZW>
        <SFDK>02 </SFDK>
        <XRRQ>20080615  </XRRQ>
        <GXRQ>20080616  </GXRQ>
      </Table>
    </NewDataSet> <NewDataSet>
      <Table>
        <DATAID>1 </DATAID>
        <XTSJBH>1 </XTSJBH>
        <CODE>01        </CODE>
        <YYBH>000000000000000001715130000618 </YYBH>
        <ZT>1000000000 </ZT>
        <ID>94899 </ID>
        <XM>徐宁 </XM>
        <CSNY>1983-06-02T00:00:00+08:00 </CSNY>
        <JG>411302 </JG>
        <MZ>01 </MZ>
        <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ>
        <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ>
        <SFZH>411302198306060577 </SFZH>
        <BM>017773 </BM>
        <NL>24 </NL>
        <YGBH>200029 </YGBH>
        <SSGW />
        <XB>1 </XB>
        <LXFS>13849056961 </LXFS>
        <ZW>剧场音响管理 </ZW>
        <SFDK>02 </SFDK>
        <XRRQ>20080615  </XRRQ>
        <GXRQ>20080616  </GXRQ>
      </Table>
    </NewDataSet>
    "

    我如何将它变成格式化成dataset?
    最好有实现代码
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • khler
    • 等级:
    发表于:2008-06-19 16:44:311楼 得分:10
    从文件读入:

    DataSet dataSet = new DataSet();
    dataSet.ReadXml("input.xml", XmlReadMode.ReadSchema);

    从字符串分解:

    DataSet dataSet = new DataSet();
    DataTable dataTable = new DataTable("table1");
    dataTable.Columns.Add("col1", typeof(string));
    dataSet.Tables.Add(dataTable);

    string xmlData = " <XmlDS> <table1> <col1>Value1 </col1> </table1> <table1> <col1>Value2 </col1> </table1> </XmlDS>";

    System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);

    dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-19 16:49:062楼 得分:0
    直接读就可以
     
            DataSet ds = new DataSet();
            ds.ReadXml(MapPath("**.xml"));
            DataGrid1.DataSourxe = ds;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-19 16:49:353楼 得分:0
    用dataset直接读取即可
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-19 16:51:084楼 得分:0
    晕。。我说的意思是,用客户端链接webservices,得到一个string格式的字符串,要把这个字符串变成dataset 没有文件。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-19 22:29:025楼 得分:40
    C# code
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; using System.IO; using System.Data; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { DataSet ds = new DataSet(); string xmlstr = @"<NewDataSet> <Table> <DATAID>1 </DATAID> <XTSJBH>1 </XTSJBH> <CODE>01 </CODE> <YYBH>000000000000000001715130000618 </YYBH> <ZT>1000000000 </ZT> <ID>94899 </ID> <XM>徐宁 </XM> <CSNY>1983-06-02T00:00:00+08:00 </CSNY> <JG>411302 </JG> <MZ>01 </MZ> <CJGZSJ>2007-09-01T00:00:00+08:00 </CJGZSJ> <JRBXTGZSJ>2007-09-01T00:00:00+08:00 </JRBXTGZSJ> <SFZH>411302198306060577 </SFZH> <BM>017773 </BM> <NL>24 </NL> <YGBH>200029 </YGBH> <SSGW /> <XB>1 </XB> <LXFS>13849056961 </LXFS> <ZW>剧场音响管理 </ZW> <SFDK>02 </SFDK> <XRRQ>20080615 </XRRQ> <GXRQ>20080616 </GXRQ> </Table> </NewDataSet>"; using (StringReader sr = new StringReader(xmlstr)) { ds.ReadXml(sr); } Console.WriteLine(ds.Tables.Count); } } }


    原来楼主不会把string 转换为 ds 可以接收的格式;

    下次问问题还是把需求说清楚点好;

    其实上面已经给出了啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • 5207
    • 等级:
    发表于:2008-06-19 22:33:316楼 得分:0
    楼主从Web services 得到的是一个XML,你用一个XML获取就可以了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-20 06:41:477楼 得分:0
    人家DataSet的ReadXml方法是有重载的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagebu1983
    • 等级:
    发表于:2008-06-20 08:35:008楼 得分:0
    楼上都回答了!!
    接分!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-20 08:47:079楼 得分:0
    webservices 返回的不就是类型吗
    不知道LZ具体是怎么应用的

    可以直接用DataSet了啊
    不然还做成webservices干什么  不如直接程序返回xml就行了 浪费一个服务
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-20 09:24:3110楼 得分:0
    string sFile;  //接收字符串
    StringReader sr = new StringReader(sFile); //读取字符流
    DataSet ds = new DataSet();
    try
    {
    ds.ReadXml(sr);    //将字符流转换为 DataSet
    }
    catch
    {}
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 15:26:0211楼 得分:0
    引用 5 楼 FlashElf 的回复:
    C# code

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.IO;
    using System.Data;

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
           
                DataSet ds = new DataSet();
                string xmlstr = @" <NewDataSet>
      <Table>
        <DATAID…

    大家辛苦辛苦,是我没有说清除,要的就是这样,webservices 可以返回xml,但是我们老师要求就是统一返回string格式的。没办法,说返回string java也可以接受数据。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xo3038
    • 等级:
    发表于:2008-07-23 17:22:4812楼 得分:0
    你是西亚斯的吗?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved