程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#法式中應用LINQ to XML來查詢XML格局數據的實例

C#法式中應用LINQ to XML來查詢XML格局數據的實例

編輯:C#入門知識

C#法式中應用LINQ to XML來查詢XML格局數據的實例。本站提示廣大學習愛好者:(C#法式中應用LINQ to XML來查詢XML格局數據的實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#法式中應用LINQ to XML來查詢XML格局數據的實例正文


關於LINQ to XML
LINQ to XML 是一種啟用了 LINQ 的內存 XML 編程接口,應用它,可以在 .NET Framework 編程說話中處置 XML。
它將 XML 文檔置於內存中,這一點很像文檔對象模子 (DOM)。 您可以查詢和修正 XML 文檔,修正以後,可以將其另存為文件,也能夠將其序列化然後經由過程收集發送。 然則,LINQ to XML 與 DOM 分歧: 它供給一種新的對象模子,這是一種更輕量的模子,應用也更便利,這類模子應用了 VisualC# 2008 在說話方面的改良。
LINQ to XML 最主要的優勢是它與 Language-Integrated Query (LINQ) 的集成。 因為完成了這一集成,是以,可以對內存 XML 文檔編寫查詢,以檢索元素和屬性的聚集。 LINQ to XML 的查詢功效在功效上(雖然不是在語法上)與 XPath 和 XQuery 具有可比性。 Visual C# 2008 集成 LINQ 後,可供給更強的類型化功效、編譯時檢討和改良的調試器支撐。
經由過程將查詢成果用作 XElement 和 XAttribute 對象結構函數的參數,完成了一種功效壯大的創立 XML 樹的辦法。 這類辦法稱為“函數結構”,應用這類辦法,開辟人員可以便利地將 XML 樹從一種外形轉換為另外一種外形。
LINQ to XML 供給了改良的 XML 編程接口,這一點能夠與 LINQ to XML 的 LINQ 功效異樣主要。 經由過程 LINQ to XML,對 XML 編程時,您可以完成任何預期的操作,包含:

  • 從文件或流加載 XML。
  • 將 XML 序列化為文件或流。
  • 應用函數結構從頭開端創立 XML。
  • 應用相似 XPath 的軸查詢 XML。
  • 應用 Add、Remove、WordStrWith 和 SetValue 等辦法對內存 XML 樹停止操作。
  • 應用 XSD 驗證 XML 樹。

應用這些功效的組合,可將 XML 樹從一種外形轉換為另外一種外形。

實例
在前一段時光開辟的護士站項目中,我是for輪回XMLReader的方法遍歷XML文件的。也能完成相干的需求,且函數封裝好了今後,可以直接挪用,也挺便利。

上面用LINQ to XML來展示。詳細更具體的器械可以去查MSND。

客戶真個XML文件以下,為了展示便利我只取了3項:

<?xml version="1.0"?>
<ROWSET>
 <ROW>
 <救治序號>1</救治序號>
 <救治日期>2012-06-11</救治日期>
 <病人ID>00002468</病人ID>
 <姓名>吳建平</姓名>
 <性別>男</性別>
 <年紀>42</年紀>
 <救治科室>2981</救治科室>
 </ROW>
 <ROW>
 <救治序號>2</救治序號>
 <救治日期>2012-06-11</救治日期>
 <病人ID>00002467</病人ID>
 <姓名>蔡蕊</姓名>
 <性別>女</性別>
 <年紀>33</年紀>
 <救治科室>2981</救治科室>
 </ROW>
 <ROW>
 <救治序號>3</救治序號>
 <救治日期>2012-06-11</救治日期>
 <病人ID>412905</病人ID>
 <姓名>aaa</姓名>
 <性別>男</性別>
 <年紀>24</年紀>
 <救治科室>2981</救治科室>
 </ROW>
</ROWSET>

怎樣展示呢?存眷Form1_Load辦法以下:

using System;
using System.Linq;
using System.Windows.Forms;
using System.Xml.Linq;

namespace Lint2XMLDatabinding
{
 public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
   string xmlFilePath = @"./以後在科病人根本信息.xml";
   XDocument doc = XDocument.Load(xmlFilePath);

   var query = from p in doc.Descendants("ROW")//doc.Descendants("ROW")
      where p.Element("救治序號").Value!="1"
      select new { A = p.Element("救治序號").Value, B = p.Element("病人ID").Value, C = p.Element("姓名").Value ,D=p.Element("性別").Value };
   
   dataGridView1.DataSource= query.ToList();
   
  }
 }
}

法式成果以下:

201637160525560.png (476×361)

本篇博文用來示例的Demo很簡略,目標純真為了應用LINQ。操作XML文件的辦法有許多,不消LINQ固然也沒甚麼成績。

其實,迄今為止,.NET Framework一共供給了兩套處置XML數據的類庫:

1、即DebugLZQ後面項目裡用的的相符DOM尺度的類庫:寶庫XmlDocument、XmlElement、XmlNode、XmlAttribute等類。這套類庫的特色是中規中矩、功效壯大,但也背負了太多XML的傳統和龐雜。

2、以LINQ為基本的類庫:包含XDocument、XElement、XNode、XAttribute等類。這套類庫的特色是可使用LINQ停止查詢和操作,便利快捷。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved