LINQ to XML文檔全面概括
本文向大家介紹LINQ to XML文檔,可能好多人還不了解LINQ to XML文檔,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
相當(dāng)?shù)暮?jiǎn)單,只要先生成一個(gè)XElement對(duì)象然后把它Add到當(dāng)前節(jié)點(diǎn)對(duì)象就可以了。進(jìn)一步我們仔細(xì)查看一下XElement可以添加節(jié)點(diǎn)的方法??梢钥吹揭还灿蠥dd, AddAfterSelf, AddAnnotation, AddBeforeSelf, AddFirst這五個(gè)方法。在默認(rèn)情況下,Add的操作是將新節(jié)點(diǎn)作為被插入節(jié)點(diǎn)的最后一個(gè)孩子節(jié)點(diǎn)插入的,而AddFirst正好相反。AddAfterSelf和AddBeforeSelf則是將節(jié)點(diǎn)作為兄弟節(jié)點(diǎn)插入的,這里要注意的是調(diào)用這兩個(gè)方法的時(shí)候不能以根節(jié)點(diǎn)作為被插入節(jié)點(diǎn),因?yàn)長(zhǎng)INQ to XML文檔規(guī)定只能有一個(gè)根節(jié)點(diǎn)。最后,我們來(lái)看一下AddAnnotation這個(gè)方法。AddAnnotation是為一個(gè)節(jié)點(diǎn)添加一個(gè)相關(guān)的評(píng)注的類(lèi)對(duì)象。這個(gè)類(lèi)對(duì)象可以用戶自己定義,所以通過(guò)這個(gè)方法我們可以擴(kuò)展LINQ to XML文檔對(duì)象的功能,例如根據(jù)節(jié)點(diǎn)來(lái)獲取類(lèi)對(duì)象的功能。下面是一段引用自msdn的代碼:
- public class MyAnnotation
- {
- private string tag;
- public string Tag { get { return tag; } set { tag = value; } }
- public MyAnnotation(string tag)
- {
- this.tag = tag;
- }
- }
- … …
- MyAnnotation ma = new MyAnnotation("T1");
- XElement root = new XElement("Root", "content");
- root.AddAnnotation(ma);
- MyAnnotation ma2 = (MyAnnotation)root.Annotation<MyAnnotation>();
接下來(lái)我們?cè)倏匆幌氯绾卫肔INQ to XML來(lái)更新XML的信息。對(duì)LINQ to XML文檔進(jìn)行更新主要包括兩個(gè)方面,一個(gè)方面是對(duì)元素屬性和值得更新;另一方面是對(duì)元素名稱(chēng)的更新。在一般情況下,我們通常只對(duì)元素的屬性和值進(jìn)行更新,代碼如下:
- XElement xelem = XElement.Load(@"example.xml");
- var partNos = from item in xelem.Descendants("Item")
- where item.Attribute("PartNumber").Value == "872-AA"
- select item;
- foreach (XElement node in partNos)
- {
- node.Value = "Hello";
- Console.WriteLine(node.Value);
- }
【編輯推薦】