利用DataSet的ReadXml轻松读取XML文件及Stream流

来源:互联网 发布:niconico网络无法连接 编辑:程序博客网 时间:2024/04/29 12:38
        string strxml = "<xml><m><a>1</a><b>2</b></m><m><a>11</a><b>22</b></m><m><a>111</a><b>222</b></m></xml>";                DataSet ds = new DataSet();        Stream stream = new MemoryStream(Encoding.Default.GetBytes(strxml));        ds.ReadXml(stream);        GridView1.DataSource = ds;        GridView1.DataBind();
    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            DataSet ds = new DataSet();            TextReader reader = new StringReader(@"                        <music>                          <song>                            <artist>The Chi-lites</artist>                            <genre>Soul</genre>                            <album>A lonely man</album>                            <year>1972</year>                          </song>                          <song>                            <artist>Babyface</artist>                            <genre>R&B</genre>                            <album>unknown</album>                            <year></year>                          </song>                          <song>                            <artist>Babyface</artist>                            <genre>R&B</genre>                            <album>The essential babyface</album>                            <year>2001</year>                          </song>                          <song>                            <artist>Babyface</artist>                            <genre>R&B</genre>                            <album>Grown and sexy</album>                            <year>2005</year>                          </song>                          <song>                            <artist>Maria Arredondo</artist>                            <genre>Pop</genre>                            <album>Not going under</album>                            <year>2004</year>                          </song>                          <song>                            <artist>Leona Lewis</artist>                            <genre>Pop</genre>                            <album>Unknown</album>                            <year>2008</year>                          </song>                          <song>                            <artist>Usher</artist>                            <genre>R&B</genre>                            <album>Usher</album>                            <year>2008</year>                          </song>                          <song>                            <artist>Christina Aguilera</artist>                            <genre>Blues</genre>                            <album>Back to basics</album>                            <year>2004</year>                          </song>                          <song>                            <artist>Sting</artist>                            <genre>Pop</genre>                            <album>Shape of my heart</album>                            <year></year>                          </song>                        </music>                        ");            //读取Xml字符串 用来接收WebService返回数据            ds.ReadXml(reader, XmlReadMode.Auto);            //生成Xml文件            //ds.WriteXml(Server.MapPath("xml/song_bak.xml"));            GridView1.DataSource = ds;            GridView1.DataBind();        }    }
    #region 接口返回的Xml转换成DataSet    /// <summary>    /// 返回的Xml转换成DataSet    /// </summary>    /// <param name="text">Xml字符</param>    /// <returns></returns>    private DataSet GetDataSet(string text)    {        try        {            XmlTextReader reader = new XmlTextReader(new StringReader(text));            reader.WhitespaceHandling = WhitespaceHandling.None;            DataSet ds = new DataSet();            ds.ReadXml(reader);            reader.Close();            ds.Dispose();            return ds;        }        catch        {            return null;        }    }    #endregion    #region 后台提交数据且获取接口返回的数据    /// <summary>      /// 后台提交数据且获取接口返回的数据     /// </summary>      /// <param name="relativePath">地址</param>      /// <returns></returns>      public static string GetRequestString(string relativePath)    {        string requestUrl = relativePath;        try        {            // 创建一个HTTP请求            HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(requestUrl);            request.Method = "GET";            StreamReader jsonStream = new StreamReader(request.GetResponse().GetResponseStream());            string jsonObject = jsonStream.ReadToEnd();            return jsonObject;        }        catch        {            return string.Empty;        }    }    #endregion