LINQ to XML 操作XML文档

时间:2022-06-04 20:50:50

使用 XDocument 对象的 Element 方法,获取制定层次结构中指定一个元素的值

public void MyDocElement()
        {
            
            XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
            //查找地址的元素
            Response.Write(xdoc.Element("PLAY").Element("TITLE").Value + "<br />");
            //如果包含多个同名元素,则只返回第一个元素
            Response.Write(xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").Value + "<br />");

        }

 

用SetValue方法去修改指定元素的值

public void MyDocElementSetValue()
        {
            XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
            //修改指定位置元素的值
            xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").SetValue("冯瑞涛");
            //如果包含多个同名元素,则只返回第一个元素
            Response.Write(xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").Value + "<br />");
        }

 

使用Add方法添加制定元素到指定位置

public void MyDocElementAdd()
       {
           XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
           //定义一个演员
           XElement xe = new XElement("PERSONA", "冯瑞涛");
           //将演员添加到指定元素的最后面
           xdoc.Element("PLAY").Element("PERSONAE").Add(xe);

           //重新查询结果
           var query = from people in xdoc.Descendants("PERSONA")
                       select people.Value;
           //people 是符合条件元素结果集 而people.Value;就是这个结果集的所有元素的值的序列
           Response.Write(query.Count() + " 个演员被找到。");

           Response.Write("<p />他们是: <p />");

           foreach (var item in query)
           {
               //输出他们的值
               Response.Write(item + "<br />");

           }

       }

 

使用Remove方法删除制定元素

public void MyDocElementRemove()
        {
            XDocument xdoc = XDocument.Load(Server.MapPath("hamlet.xml"));
            //删除
            xdoc.Element("PLAY").Element("PERSONAE").Element("PERSONA").Remove();

            //重新查询结果编程了25个演员
            var query = from people in xdoc.Descendants("PERSONA")
                        select people.Value;
            //people 是符合条件元素结果集 而people.Value;就是这个结果集的所有元素的值的序列
            Response.Write(query.Count() + " 个演员被找到。");

            Response.Write("<p />他们是: <p />");

            foreach (var item in query)
            {
                //输出他们的值
                Response.Write(item + "<br />");

            }
        }