LINQ查詢XML文檔分析
學(xué)習(xí)LINQ查詢時(shí),經(jīng)常會(huì)遇到LINQ查詢XML文檔問題,這里將介紹LINQ查詢XML文檔問題的解決方法。
LINQ to XML 是一種啟用了 LINQ 的內(nèi)存 XML 編程接口,使用它,可以在 .NET Framework 編程語言中處理 XML。 它將 XML 文檔置于內(nèi)存中,這一點(diǎn)很像文檔對(duì)象模型 (DOM)。 您可以LINQ查詢XML文檔,修改之后,可以將其另存為文件,也可以將其序列化然后通過網(wǎng)絡(luò)發(fā)送。 但是,LINQ to XML 與 DOM 不同:它提供一種新的對(duì)象模型,這是一種更輕量的模型,使用也更方便,這種模型利用了 Visual C# 2008 在語言方面的改進(jìn)。
LINQ查詢XML文檔
- <?xml version="1.0" encoding="utf-8"?>
- <pets>
- <pet>
- <id>2</id>
- <name>Dog</name>
- <species>Some Kind of Cat</species>
- <sex>Female</sex>
- <startYear>1972</startYear>
- <endYear>1974</endYear>
- <causeOfDeath>Car</causeOfDeath>
- <specialQuality>Best mouser</specialQuality>
- </pet>
- <pet>
- <id>3</id>
- <name>Sam</name>
- <species>Labrador</species>
- <sex>Female</sex>
- <startYear>1973</startYear>
- <endYear>1980</endYear>
- <causeOfDeath>Old Age</causeOfDeath>
- <specialQuality>Great hunting dog</specialQuality>
- </pet>
- </pets>
載入文檔后,XDocument或XElement的Elements()方法執(zhí)行時(shí)返回IEnumrable<XElement>類型的子節(jié)點(diǎn)信息,Element()方法返回唯一的子節(jié)點(diǎn)信息。
查找所有pet的name。分別使用XDocument和XElement查找。
- XDocument document = XDocument.Load("MyPets.xml");
- XElement element = XElement.Load("MyPets.xml");
- var name = from pet in document.Elements("pets").Elements("pet")
- select pet.Element("name").Value;
- var pets = from pet in element.Elements("pet")
- select pet;
- Array.ForEach(pets.ToArray(), p=>Console.WriteLine(p.Element("name").Value));
- Array.ForEach(name.ToArray(), n => Console.WriteLine(n));
【編輯推薦】