System.Xml
using
System.IO
namespace
WriteXml{classProgram{
static
void
Main(string[]
args){
addItem()//追加节点(数据)}privatestatic
void
addItem(){
XmlDocument
xmlDoc
=
new
XmlDocument()
xmlDoc.Load("titles.xml")//加载xml文件,路径未指定时默认在当前项目环境下
XmlNode
root
=
xmlDoc.SelectSingleNode("items")//选择要添加子节点的items节点
XmlElement
xe1
=
xmlDoc.createElement_x("item")//创建一个具有指定名称的子节点
xe1.SetAttribute("类别",
"张三")//设置item的属性
及属性值
xe1.SetAttribute("品质",
"老师")//
XmlElement
xmlsub1
=
xmlDoc.createElement_x("title")//创建一个具有指定名称的元素
xmlsub1.InnerText
=
"wahahha"//设置该元素的值
xe1.AppendChild(xmlsub1)//将该元素添加到item子节点的尾部
XmlElement
xmlsub2
=
xmlDoc.createElement_x("author")//创建一个具有指定名称的元素
xmlsub2.InnerText
=
"三毛"//设置该元素的值
xe1.AppendChild(xmlsub2)//将该元素添加到item子节点的尾部
XmlElement
xmlsub3
=
xmlDoc.createElement_x("Price")//创建一个具有指定名称的元素
xmlsub3.InnerText
=
"15.00"//设置该元素的值
xe1.AppendChild(xmlsub3)//将该元素添加到item子节点的尾部
root.AppendChild(xe1)//将创建的item子节点添加到items节点的尾部
根据你的贴图可以看出你的记录只有一个唯一键值,用户名,那么如果想删除
记录必须找到这个唯一键值的在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属性就可以得到你所选择行的行索引号,通过索引号就自然可以读取到所在行的第一列的值。
private void button1_Click(object sender, EventArgs e){
string File = @"c:\TableColumns.xml"
System.Xml.XmlDocument xmlDoc=new System.Xml.XmlDocument()
xmlDoc.Load(File)
System.Xml.XmlNode xn = xmlDoc.DocumentElement.SelectSingleNode("TableColumns/TableColumn[@id=\"IndexUnit\"]")//读取id=IndexUnit的TableColumn节点,在xml教材中的xPath章节专门介绍这种查询方法。
System.Xml.XmlElement vs=xmlDoc.CreateElement("Visibility")//创建新节点
System.Xml.XmlElement Hd = xmlDoc.CreateElement("Hidden")
Hd.InnerText = "true"
vs.AppendChild(Hd)//添加为子节点
xn.AppendChild(vs)
xmlDoc.Save(File)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)