首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 從網路讀取 XML 資料:LINQ to XML 與 XmlReader 兩種實作方式

     編輯:關於C語言

一、使用 LINQ 讀取

使用 XDocument 的 Load 方法可快速載入 XML 文件,再透過 LINQ 查詢或操作。這裡僅簡單遍歷:一旦查詢回傳元素集合,即可用 foreach 迴圈存取每個元素。核心代碼如下:

/// <summary>
/// 使用 LINQ 讀取網路上的 XML
/// </summary>
public static void UseLINQ()
{
    string sURL = "https://localhost:9058/GameServerInfo/XMLFile.XML";
    XDocument oXDoc = XDocument.Load(sURL);
    var query = from e in oXDoc.Descendants()
                where e.NodeType == XmlNodeType.Element
                select new
                {
                    ElementName = e.Name.ToString(),
                    ElementValue = e.Value
                };
    foreach (var elementInfo in query)
    {
        HttpContext.Current.Response.Write(string.Format("ElementName->{0} ElementValue->{1}<br />", elementInfo.ElementName, elementInfo.ElementValue));
    }
}

二、使用 XmlReader 建構函數

也可透過帶有 URL 的 XmlReader.Create 方法完成操作,它使用 XmlUrlResolver 實例偵測傳入的 URL,並開啟通往該 URL 代表之 XML 文件的資料流。為指定讀取器設定,可使用另一個 Create 多載,透過 XmlReaderSettings 實例達成。代碼如下:

/// <summary>
/// 使用 XmlReader 建構函數
/// </summary>
public static void UseXMLReader()
{
    string sURL = "https://localhost:9058/GameServerInfo/XMLFile.XML";
    using (XmlReader reader = XmlReader.Create(sURL))
    {
        while (reader.Read())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    HttpContext.Current.Response.Write(string.Format("ElementName->{0} <br />", reader.Name));
                    break;
                case XmlNodeType.Text:
                    HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", reader.Value));
                    break;
                case XmlNodeType.CDATA:
                    HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", reader.Value));
                    break;
                // other cases...
            }
        }
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved