C#读写XML文件一点小结贴。
基础知识:
可以参考如下地址文章:
http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/26/1945107.html
如果是unity3d中可以参考雨松MOMO的文章:Unity3D研究院之使用 C#合成解析XML与JSON(四十一)
//所需要添加的命名空间
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(“xml文件路径path”);
//指定一个节点
XmlNode root=xml.SelectSingleNode("节点名称");
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes;
//判断该节点下是否有子节点
root.HasChildNodes;
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("节点名称");
//生成一个新节点
XmlElement node=xml.createElement_x_x_x_x_x("节点名称");
//将节点加到指定节点下,作为其子节点
root.A(node);
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes);
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111");
//为指定节点添加子节点
root.A(node);
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value;
//获取指定节点中的文本
string content=node.InnerText;
//保存XML文件
xml.Save(“xml文件存储的路径path”);
忽略注释问题:
C#在读取XML的时候会读取XML中的全部内容,对于其中注释掉的部分也可以通过节点获取到。 我们可以通过设置IgnoreComments 属性来只读取未加注释的XML信息。 下面是加载为参加注释的XML信息代码:
XmlDocument xmlDoc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
string strPath = Application.StartupPath + string.Format("\\{0}", xmlDocName);
XmlReader reader = XmlReader.Create(strPath, settings); 6: xmlDoc.Load(reader);
需要注意的是,如果你已经用上面这种去注释的方式读入XML,再之后在程序中修改XML是不行的,修改完后最后调用save函数时会报IOException,因为xmlDoc.Load(reader)这句读入XML文件是只读的,你又要修改,所以文件状态标志位冲突了。所以最后save的时候就报IOException了。所以要修改XML文件就常规的new document完后load就行了。
|