c#用XmlAttribute如何往xml文档里面节点写入属性?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#用XmlAttribute如何往xml文档里面节点写入属性?相关的知识,希望对你有一定的参考价值。
XmlAttribute好像没有构造函数 应该说 是没有公有的构造函数 我不知道该怎么往xml文档里面添加属性
以下是我搜集的一些XML常用的操作,一般就这几个。你说的问题,可以用这样的方式someNode.SetAttribute("","");来解决,但首先你需要找到那个需要改动的节点someNode。呵呵,你还是慢慢看吧,不多。using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes;
//判断该节点下是否有子节点
root.HasChildNodes;
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("/Root/News");
//生成一个新节点
XmlElement node=xml.CreateElement("News");
//将节点加到指定节点下,作为其子节点
root.AppendChild(node);
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes[i]);
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111");
//为指定节点添加子节点
root.AppendChild(node);
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value;
//获取指定节点中的文本
string content=node.InnerText;
//保存XML文件
string path=Server.MapPath("~/file/bookstore.xml");
xml.Save(path);
//or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml")); 参考技术A XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("/aa.xml");
XmlNode root = xmlDoc.SelectSingleNode("bcaster");//查找<bcaster>
XmlElement xe1 = xmlDoc.CreateElement("item");//创建一个<item>节点
xe1.SetAttribute("itemtitle", "值");//设置该节点itemtitle属性
xe1.SetAttribute("item_url", "值");//设置该节点item_url属性
xe1.SetAttribute("link", "值");//设置该节点link属性
root.AppendChild(xe1);
xmlDoc.Save("/aa.xml");//保存。 参考技术B 其实用JQuery框架实现最简单不过了。
用C#创建XML文档和读取并修改XML文档
我们先建立一个模板,下面的示例就是用这个模板来写的。
<root_CharacterTemp>
<CharacterTemp>
<JobId>0</JobId>
<InitMode>none</InitMode>
<Rate_Force>0</Rate_Force>
</CharacterTemp>
</root_CharacterTemp>
我们来先写如何用代码创建上面的xml数据
void CreateXml()
//判断文件是否存在
if (!File.Exists(path))
XmlDocument xmlDoc = new XmlDocument();
XmlElement root_Character = xmlDoc.CreateElement("root_CharacterTemp");
XmlElement characterTemp = xmlDoc.CreateElement("CharacterTemp");
XmlElement jobId = xmlDoc.CreateElement("JobId");
jobId.InnerText = "0";
XmlElement initMode = xmlDoc.CreateElement("InitMode");
initMode.InnerText = "none";
XmlElement rate_Force = xmlDoc.CreateElement("Rate_Force");
rate_Force.InnerText = "0";
//下面的代码都是 添加节点
characterTemp.AppendChild(jobId);
characterTemp.AppendChild(initMode);
characterTemp.AppendChild(rate_Force);
root_Character.AppendChild(characterTemp);
xmlDoc.AppendChild(root_Character);
xmlDoc.Save(path);
编译并运行就会就会创建示例中的xml数据
下面是如何更新xml数据
void UpdateXml()
if (File.Exists(path))
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlNode root = xmlDoc.SelectSingleNode("root_CharacterTemp");
XmlNodeList nodeList = root.ChildNodes;
foreach (XmlElement node in nodeList)
foreach (XmlElement childNode in node.ChildNodes)
if (childNode.Name == "JobId")
childNode.InnerText = "1000";
xmlDoc.Save(path);
很简单几行代码就能修改某一个数据,这里我修改的是JobId的数据,把0修改成了1000
以上是关于c#用XmlAttribute如何往xml文档里面节点写入属性?的主要内容,如果未能解决你的问题,请参考以下文章
C# 不能在 2 个 Xmlnodes 中添加相同的 XmlAttribute