对于Xml文件的操作,C#.Net提供了相应的Xml操作类,方便对xml文件的读写
下面是两种方法
1、首先是创建xml文件,先实例化XmlDocument类,添加xml文档的声明
XmlDocument doc = new XmlDocument(); //加入声明 XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"); doc.AppendChild(declaration);
2、然后就是创建根节点Students,这里在根节点上创建三个子节点Student,然后添加到doc中
XmlElement root = doc.CreateElement("Students"); for (int i = 0; i < 3; i++) { //创建节点,设置属性 XmlElement xe1 = doc.CreateElement("Student"); xe1.SetAttribute("Name", "Bomo"); xe1.SetAttribute("Sex", "man"); //添加三个子节点 XmlElement xesub1 = doc.CreateElement("语文"); xesub1.InnerText = "70"; xe1.AppendChild(xesub1); XmlElement xesub2 = doc.CreateElement("数学"); xesub2.InnerText = "80"; xe1.AppendChild(xesub2); XmlElement xesub3 = doc.CreateElement("英语"); xesub3.InnerText = "90"; xe1.AppendChild(xesub3); //添加到根节点中 root.AppendChild(xe1); } //添加根节点到文档类中 doc.AppendChild(root);
3、最后是保存xml文件
doc.Save(@"test.xml");
下面是test.xml文件的信息
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Students> <Student Name="Bomo" Sex="man"> <语文>70</语文> <数学>80</数学> <英语>90</英语> </Student> <Student Name="Bomo" Sex="man"> <语文>70</语文> <数学>80</数学> <英语>90</英语> </Student> <Student Name="Bomo" Sex="man"> <语文>70</语文> <数学>80</数学> <英语>90</英语> </Student> </Students>
4、下面是读取xml文档
XmlDocument doc = new XmlDocument(); doc.Load("test.xml"); //得到根节点Students XmlNode node = doc.SelectSingleNode("Students"); XmlElement element = (XmlElement)node; //取得根节点的子节点(三个Studnt) XmlNodeList nodeList = element.ChildNodes; foreach (XmlNode n in nodeList) { XmlElement xmlelement = (XmlElement)n; //得到节点的属性 string name = xmlelement.GetAttribute("Name"); string sex = xmlelement.GetAttribute("Sex"); //修改节点属性 xmlelement.SetAttribute("Name", "Tobi"); xmlelement.SetAttribute("Sex", "Female"); //取得Student节点的子节点(语文,数学,英语) foreach (XmlNode subnode in xmlelement.ChildNodes) { XmlElement subelement = (XmlElement)subnode; //取得节点的字符串的score string score = subelement.InnerText; } }
如果需要修改xml文件,则修改后调用Save方法即可
常用的几个方法 GetAttribute,SetAttribute,SelectSingleNode,SelectNodes,RemoveAttribute,RemoveChild
5、还有一种读写Xml文件的类
XmlWtiter/XmlReader,XmlTextWriter/XmlTextReader
为了方便看,代码进行了缩进,这样好理解一些,其实就是树形结构,很好理解
XmlTextWriter writer = new XmlTextWriter("test2.xml", Encoding.UTF8); //格式为自动缩进 writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); //创建根节点 writer.WriteStartElement("root"); //创建子节点Student writer.WriteStartElement("Student"); writer.WriteAttributeString("name", "Bomo"); writer.WriteStartElement("分数"); writer.WriteStartElement("语文"); writer.WriteString("60"); writer.WriteEndElement(); writer.WriteStartElement("数学"); writer.WriteString("70"); writer.WriteEndElement(); writer.WriteStartElement("英语"); writer.WriteString("80"); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.Close();
得到的xml文件是这样的
<?xml version="1.0" encoding="utf-8"?> <root> <Student name="Bomo"> <分数> <语文>60</语文> <数学>70</数学> <英语>80</英语> </分数> </Student> </root>
其他几个类的用法相似,就不列举了