利用C#讀取Web上的XML數(shù)據(jù)的兩種方法
一、使用LINQ讀取XML數(shù)據(jù)
使用Xdocument上的Load方法,可以快速的加載一個(gè)XML文檔,然后使用LINQ對(duì)加載XML文檔進(jìn)行查詢或其他操作,這里僅簡(jiǎn)單偏歷。所以,一旦查詢一組元素有返回元素集,就可以使用一個(gè)簡(jiǎn)單的foreach循環(huán)訪問(wèn)每一個(gè)元素。核心代碼如下:
- /// <summary>
- /// 使用LINQ讀取web上的XML數(shù)據(jù)
- /// </summary>
- public static void UseLINQ()
- {
- string sURL = "http://localhost:9058/GameServerInfo/XMLFile.xml";
- XDocument oXDoc = XDocument.Load(sURL);
- var qurey = from e in oXDoc.Descendants()
- where e.NodeType == XmlNodeType.Element
- select new
- {
- ElementName=e.Name.ToString(),
- ElementValue=e.Value
- };
- foreach(var elementInfo in qurey)
- {
- HttpContext.Current.Response.Write(string.Format("ElementName->{0} ElementValue->{1}<br />", elementInfo.ElementName, elementInfo.ElementValue));
- }
- }
二、使用XmlReader構(gòu)造函數(shù)
當(dāng)然還可以通過(guò)使用帶有URL的XmlReader.Create方法來(lái)完成操作,它使用的是一個(gè)XmlUrlResolver類的一個(gè)實(shí)例檢測(cè)傳入的URL,然后打開一個(gè)通向由該URL代表的XML文檔流。為了指定閱讀器上的設(shè)置,可以使用另一個(gè)Create的重載,它也通過(guò)一個(gè)XmlReaderSetting實(shí)例完成這一目的。代碼如下:
- /// <summary>
- /// 使用XmlReader構(gòu)造函數(shù)
- /// </summary>
- public static void UseXmlReader()
- {
- string sURL = "http://localhost:9058/GameServerInfo/XMLFile.xml";
- using(XmlReader read=XmlReader.Create(sURL))
- {
- while(read.Read())
- {
- switch (read.NodeType)
- {
- case XmlNodeType.Element:
- HttpContext.Current.Response.Write(string.Format("ElementName->{0} <br />", read.Name));
- break;
- case XmlNodeType.Text:
- HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", read.Value));
- break;
- case XmlNodeType.CDATA:
- HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", read.Value));
- break;
- //other
- }
- }
- }
- }
三、XML數(shù)據(jù)實(shí)例代碼下載
代碼下載:http://files.cnblogs.com/tjdxlmy/XMLCode.rar
【編輯推薦】