c# 在xml 跟节点下添加子节点

c# 在xml 跟节点下添加子节点,第1张

这个是修改后的...

private void AddXml(string url, string title, string description, string target, int btn)

{

XmlDocument xmlDoc = new XmlDocument()

xmlDoc.Load("../../XMLFile.xml") //加载xml文件

XmlNode rootXml = xmlDoc.SelectSingleNode("siteMapPath") //查询XML文件的根节点("siteMapPath")

XmlNode xn = rootXml.SelectSingleNode("siteMap") //查询节点("siteMap")

if (btn == 1)

{

XmlElement xe = xmlDoc.CreateElement("siteMap") //创建节点("siteMap")

//设置新建节点("siteMap")的相关属性

xe.SetAttribute("url", url)

xe.SetAttribute("title", title)

xe.SetAttribute("description", description)

xe.SetAttribute("target", target)

if (xn.Attributes["title"].Value.Equals("教学管理"))

{

rootXml.InsertAfter(xe, xn) //将新建的节点xe放置于xn节点后

}

}

else

{

XmlNodeList xnl = xn.SelectNodes("siteMapNode") //获取所有节点为"siteMapNode"的节点

foreach (XmlNode xnItem in xnl)

{

XmlElement xe = (XmlElement)xnItem//将子节点类型转换为XmlElement类型

if (xe.GetAttribute("title").Equals("院系介绍"))//判断条件

{

XmlElement newXE = xmlDoc.CreateElement("siteMapChildNode")

newXE.SetAttribute("url", url)

newXE.SetAttribute("title", title)

newXE.SetAttribute("description", description)

newXE.SetAttribute("target", target)

xnItem.AppendChild(newXE)

}

}

}

xmlDoc.Save("../../XMLFile.xml")

}

private void button1_Click(object sender, EventArgs e)

{

this.AddXml("", "实践教学", "", "_self", 1)

MessageBox.Show("添加实践教学成功...")

}

private void button2_Click(object sender, EventArgs e)

{

this.AddXml("", "工商学院", "", "_self", 2)

MessageBox.Show("添加工商学院成功...")

}

应该就可以了, 你试看看吧.

呵呵O(∩_∩)O~ 赏分就算了, 回答你这个我也学到了东西. 呵呵

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

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")

}


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

原文地址: https://outofmemory.cn/bake/11426937.html

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

发表评论

登录后才能评论

评论列表(0条)

保存