System.Xml.Linq.XElement 怎么在指定的节点加入内容

System.Xml.Linq.XElement 怎么在指定的节点加入内容,第1张

在指定的节点加入内容需要分两步来完成:

首先,你要通过linq语言首先找到你需要 *** 作的节点,如:

IEnumerable<XElement>element = from el in xe.Elements("student") where el.Element("sex").Value=="女"

select e

XElement x= element.ElementAt(0)

这样就找到了满足条件的第一个元素

其次,通过简单的Xelemen的add方法就可以加入元素或者属性,如

x.Add(new XElement("xxx",new XAttribute("atrbitue","value1"))

通过这两步就完成你的目的

根据

你的贴图可以看出你的记录只有一个唯一键值,用户名,那么如果想删除

记录必须找到这个唯一键值的在xml元素中对应的属性,通过这个属性确定这个元素,然后删除这个元素。我们可以通过linq语句来 *** 作。

下面的代码将用来 *** 作xml

string

xmlpath="你xml的地址"

xdocument

xdoc

=

xdocument.load(xmlpath)

xelement

xele

=

xdoc.root.element("元素名")

//如果你要根据属性来查询的话,这么用

ienumerable

xeles=from

xel

in

xdoc.root.descendants()

where

xel.attribute("唯一键值的属性名").value=="唯一键值"

select

xel

xelement

xelee=xeles.firstordefault()

xelee.remove()

那么这样就删除了。

至于你的唯一键值如何获得,我想这个很好办,你用的是listview,通过listview的selected属性就可以得到你所选择行的行索引号,通过索引号就自然可以读取到所在行的第一列的值。

首先获取想要复制节点值添加

 XElement rootNode = XElement.Load("test.xml")

            var result = from m in rootNode.Elements ("MM02")

                         where m.Attribute ("id").Value =="1"

                         select new 

                             {

                                 id=m.Attribute ("id").Value ,

                                 fname = m.Element ("FNAM").Value ,

                                 fval = m.Element("FVAL").Value  

                             }

             

            foreach (var s in result)

            { 

                XElement x = 

                    new XElement("MM02", new XAttribute("id",s.id ),

                    new XElement ("FNAM",s.fname ),

                    new XElement ("FVAL",s.fval)

                    )

                XElement node = rootNode.Element("MM02")

                rootNode.Element("MM02").AddAfterSelf(x)

                rootNode.Save("test.xml")

            }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11390540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存