你的贴图可以看出你的记录只有一个唯一键值,用户名,那么如果想删除
记录必须找到这个唯一键值的在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属性就可以得到你所选择行的行索引号,通过索引号就自然可以读取到所在行的第一列的值。
xmlDoc.Load("titles.xml")//加载xml文件,路径未指定时默认在当前项目环境下 XmlNode root = xmlDoc.SelectSingleNode("items")//选择要添加子节点的items节点 XmlElement xe1 = xmlDoc.createElement_x("item")//创建一个具有指定名称的子节点 xe1.SetAttribute("类别", "张三")//设置item的属性 及属性值public void InsertXml(){
string path="Xml文件的位置"
XmlDocument doc=new XmlDocument()
doc.Load(path)
XmlNode root=doc.DocumentElement//获得根节点
foreach(XmlNode items in root.ChildNodes)
{
if(items.Name=="data")
{
foreach(XmlNode item in items.ChildNodes)
{
if(item.Name="meter")
{
XmlNode xm1=doc.CreateElement("function")
function.SetAttribute("id","06")
function.SetAttribute("coding","A")
function.SetAttribute("error","A")
function.InnerText="223.33"
item.AppendChild(function)
doc.Save(path)
return
}
}
}
}
}
参考下吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)