using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Xml;using System.Xml.Linq;namespace QueryXMLByLINQ{ public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } static string strPath = "Employee.xml"; static string strID = ""; //表單載入時載入XML檔案 private void Form1_Load(object sender, EventArgs e) { getXmlInfo(); } //顯示選中XML節點的詳細資料 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { strID = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();//記錄選擇的職工編號 XElement xe = XElement.Load(strPath);//載入XML檔案 //使用LINT從XML檔案中查詢資訊 IEnumerable<XElement> elements = from PInfo in xe.Elements("People") where PInfo.Attribute("ID").Value == strID select PInfo; foreach (XElement element in elements)//遍曆查詢結果 { textBox11.Text = element.Element("Name").Value;//顯示職工姓名 comboBox1.SelectedItem = element.Element("Sex").Value;//顯示職工性別 textBox12.Text = element.Element("Salary").Value;//顯示職工薪水 } } #region 將XML檔案內容綁定到DataGridView控制項 /// <summary> /// 將XML檔案內容綁定到DataGridView控制項 /// </summary> private void getXmlInfo() { DataSet myds = new DataSet(); myds.ReadXml(strPath); dataGridView1.DataSource = myds.Tables[0]; } #endregion }}
<?xml version="1.0" encoding="UTF-8"?>-<Peoples> -<People ID="001"> <Name>小王</Name> <Sex>男</Sex> <Salary>1500</Salary> </People> -<People ID="002"> <Name>小呂</Name> <Sex>男</Sex> <Salary>1500</Salary> </People> -<People ID="003"> <Name>小梁</Name> <Sex>男</Sex> <Salary>1500</Salary> </People> </Peoples>