对本地及网络上xml文件的读取

1.读取本地xml文件用FileStream

2.读取网络xml文件需要用HttpWebRequest和HttpWebResponse及Stream

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.IO;
using System.Xml.Serialization;
using System.Net;

namespace LoadXmlFromWeb
{
public class XmlFile
{
/// <summary>
/// 读取XML文件
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public static object ReadXMLFile(object type)
{
//return ReadXMLFile(type, "c:\\dll\\regexp.xml");
return ReadXMLFileFromWeb(type, "http://www.baidu.com/regexp.xml");
}
/// <summary>
/// 读取本地XML文件
/// </summary>
/// <param name="type"></param>
/// <param name="XMLDocumentUrl">本地路径</param>
/// <returns></returns>
public static object ReadXMLFile(object type, string XMLDocumentUrl)
{
//object XmlObject;
try
{
//new filestream to open serialized object
using (FileStream fileStream = new FileStream(XMLDocumentUrl, FileMode.Open))
{
//new serializer
XmlSerializer xmlSerializer = new XmlSerializer(type.GetType());
//deserialize the object
type = xmlSerializer.Deserialize(fileStream);
//load it in the list box.
//fileStream.Close();
}
return type;

}
catch(Exception ex)
{
return null;
}
}

/// <summary>
/// 读取网络上的xml文件
/// </summary>
/// <param name="type"></param>
/// <param name="XMLDocumentUrl">网址</param>
/// <returns></returns>
public static object ReadXMLFileFromWeb(object type, string XMLDocumentUrl)
{
//object XmlObject;
try
{
//需要引进名称空间System.Net;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(XMLDocumentUrl);
HttpWebResponse response
= (HttpWebResponse)request.GetResponse();

//new filestream to open serialized object
using (Stream fileStream = response.GetResponseStream())
{
//new serializer
XmlSerializer xmlSerializer = new XmlSerializer(type.GetType());
//deserialize the object
type = xmlSerializer.Deserialize(fileStream);
//load it in the list box.
//fileStream.Close();
}
return type;

}
catch (Exception ex)
{
return null;
}
}
}
}

posted @ 2011-06-16 17:56  cs_sharp  阅读(473)  评论(0)    收藏  举报