本文向大家介绍LINQ to XML文档,可能好多人还不了解LINQ to XML文档,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
相当的简单,只要先生成一个XElement对象然后把它Add到当前节点对象就可以了。进一步我们仔细查看一下XElement可以添加节点的方法。可以看到一共有Add, AddAfterSelf, AddAnnotation, AddBeforeSelf, AddFirst这五个方法。在默认情况下,Add的操作是将新节点作为被插入节点的最后一个孩子节点插入的,而AddFirst正好相反。AddAfterSelf和AddBeforeSelf则是将节点作为兄弟节点插入的,这里要注意的是调用这两个方法的时候不能以根节点作为被插入节点,因为LINQ to XML文档规定只能有一个根节点。最后,我们来看一下AddAnnotation这个方法。AddAnnotation是为一个节点添加一个相关的评注的类对象。这个类对象可以用户自己定义,所以通过这个方法我们可以扩展LINQ to XML文档对象的功能,例如根据节点来获取类对象的功能。下面是一段引用自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>();
接下来我们再看一下如何利用LINQ to XML来更新XML的信息。对LINQ to XML文档进行更新主要包括两个方面,一个方面是对元素属性和值得更新;另一方面是对元素名称的更新。在一般情况下,我们通常只对元素的属性和值进行更新,代码如下:
- 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);
- }
【编辑推荐】