Linq學習《五》 運用linq查詢Xml

2022-02-21 13:08:27 字數 1726 閱讀 2197

這節將學習如何用 linq查詢xml

一、我們先看看在xml中我們怎麼操作

public void xmlwaytoqueryxmlfile()

這是在using system.xml條件下查詢xml中id=100的node下所有的innertext

關於在xml中查詢方法,這裡講的比較詳細

二、我們看看用linq又怎麼操作

函式一: elements()返回xml文件或片段中的所有第一級元素。對於有效的xml文件,例如,剛才創

建的northwindcustomerorders.xml檔案,只有乙個第一級元素,即根元素customers

public void queryxml()

}

當時如果把select item.name 改為select.value 則顯示的是所有innertext,如果改為select item ,那麼顯示是所有xml文件

函式二:descendants()返回xml文件或片段中的所有子元素(所有級別的子元素)

public

void queryxmlbydescendants()

}

注意:select item.value時,如果xml像上面右側那樣  顯示的結果是1gougou23   1   gougou  23  (應該是先顯示custom級的value,把下面的子節點value全部顯示出來,再迴圈到下面的子節點,顯示單個子節點的value)

當然可以加distict 除掉重複的值

foreach (var i in result.distinct())

這樣就可以顯示所有id的值

var result = from item in xdoc.descendants("id")                      

select item.value; //顯示所有子元素的值

函式三 attributes(),它返回當前選中元素的所有特性

對於行如這樣的xml

<

custom

sequence

="1"

boolchange

="false">

<

id>0

id>

<

name

>nihao

name

>

<

age>112

age>

custom

>

public void queryxmlbyattributes()

}

上面**顯示的是:sequence

="1"boolchange

="false"

如果把 select item改為select item.name 則輸出:sequence  boolchange

如果該為select item.value 則輸出1 false

總結:xml的操作方法有多種,不僅可以用xml 本身提供的api,還可以用linq to xml ,各有各的好處,相比二樣linq更方便

在使用之前,記得要新增:

using system.linq;

using system.xml.linq

using system.xml;

C 學習 LINQ 查詢

在c 中使用linq查詢需要引入命名空間using system.linq 案例實操 資料準備 var roles newlist gamerole newgamerole newgamerole newgamerole newgamerole newgamerole newgamerole var...

LINQ 之 基本 LINQ 查詢操作

在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...

LINQ 查詢彙總

子查詢 描述 查詢訂單數超過5的顧客資訊 查詢句法 var子查詢 from c in ctx.customers where from o in ctx.orders group o by o.customerid into o whereo.count 5 select o.key contain...