学习C#之SAX方式操作XML文档
2018-01-21 15:22
435 查看
使用SAX方式操作XML文档的两个练习,
代码如下:
代码如下:
class Program { static void Main(string[] args) { //文件路径 string filePath = @"C:\Users\Administrator\Desktop\C#\File\SaxFile.xml"; CreateXMLFile(filePath); ReadXMLFile(filePath); Console.ReadKey(); } //解析XML文件 static void ReadXMLFile(string path) { //创建读出流 XmlReader reader = XmlReader.Create(path); //依次获取各个节点 while (reader.Read()) { //当遇到开始节点student时,获取属性值 if (reader.IsStartElement("Student")) { //获取属性值 string idValue = reader.GetAttribute("id"); Console.WriteLine("id" + ":" + idValue); } //遇到sex元素,获取间值 if (reader.IsStartElement("sex")) { //获取间值 string sexValue = reader.ReadElementContentAsString(); Console.WriteLine("sex : " + sexValue); } //如果遇到age元素,获取间值 if (reader.IsStartElement("age")) { //获取间值 int ageValue = reader.ReadElementContentAsInt(); Console.WriteLine("age : " + ageValue); Console.WriteLine(); } //如果遇到name元素,获取间值 if (reader.IsStartElement("name")) { //获取间值 string nameValue = reader.ReadElementContentAsString() ; Console.WriteLine("name : " + nameValue ); } } //操作完成关闭读出流 4000 reader.Close(); } //创建XML文件 static void CreateXMLFile(string Path) { //创建XML文件及写入流 XmlWriter writer = XmlWriter.Create(Path) ; //按照顺序写入文件 //写入文件声明 writer.WriteStartDocument(); //写入根元素 writer.WriteStartElement("Class"); //第一学生节点 writer.WriteStartElement("Student"); //添加学号属性 writer.WriteAttributeString("id", "001"); //添加name子节点 writer.WriteElementString("name", "Jack"); //添加性别子节点 writer.WriteElementString("sex", "男"); //添加年龄子节点 writer.WriteElementString("age", "18"); //结束第一个学生 writer.WriteEndElement(); //添加第二个学生子节点 writer.WriteStartElement("Student"); //添加学号属性 writer.WriteAttributeString("id", "002"); //添加name子节点 writer.WriteElementString("name", "Cici"); //添加性别子节点 writer.WriteElementString("sex", "女"); //添加年龄子节点 writer.WriteElementString("age", "18"); //结束第二个学生 writer.WriteEndElement(); //操作完成关闭写入流 writer.Close(); } }
class Program { static void Main(string[] args) { //文件路径 string filePath = @"C:\Users\Administrator\Desktop\C#\File\TestFile.xml"; CreateXMLFile(filePath); ReadXMLFile(filePath); Console.ReadKey(); } static void CreateXMLFile(string Path) { //创建XML文件及写入流 XmlWriter writer = XmlWriter.Create(Path); //按照顺序写入文件 //写入文件声明 writer.WriteStartDocument(); //写入根元素 writer.WriteStartElement("School"); //第一个班级节点 writer.WriteStartElement("Class"); //添加属性 writer.WriteAttributeString("班级", "六一班"); //添加 班级奖项 writer.WriteElementString("flag", "流动红旗"); //添加 优秀学生 writer.WriteElementString("student", "李阳"); //添加 学生个数 writer.WriteElementString("count", "五十人"); //结束第一个班级节点 writer.WriteEndElement(); //第二个班级节点 writer.WriteStartElement("Class"); //添加属性 writer.WriteAttributeString("班级", "六二班"); //添加 班级奖项 writer.WriteElementString("flag", "优秀班级"); //添加 优秀学生 writer.WriteElementString("student", "黄斌"); //添加 学生个数 writer.WriteElementString("count", "四十八人"); //结束第一个班级节点 writer.WriteEndElement(); //操作完成关闭写入流 writer.Close(); } static void ReadXMLFile(string Path) { //创建读出流 XmlReader reader = XmlReader.Create(Path); //依次获取各个节点 while (reader.Read()) { //当遇到开始节点Class时,获取属性值 if (reader.IsStartElement("Class")) { //获取属性值 string classValue = reader.GetAttribute("班级"); Console.WriteLine("班级: " + classValue); } //如果遇到count 元素,获取间值 else if (reader.IsStartElement("count")) { //获取间值 string countValue = reader.ReadElementContentAsString(); Console.WriteLine("count: " + countValue); Console.WriteLine();//读出一个之后换行 } //如果遇到student 元素,获取间值 else if (reader.IsStartElement("student")) { //获取间值 string studentValue = reader.ReadElementContentAsString(); Console.WriteLine("student: " + studentValue); } //如果遇到flag 元素,获取间值 else if (reader.IsStartElement("flag")) { //获取间值 string flagValue = reader.ReadElementString(); Console.WriteLine("name: " + flagValue); } } //操作完成关闭读出流 reader.Close(); } }
相关文章推荐
- java操作xml文档(二) SAX方式
- java中操作xml几种方式的比较和代码示例(DOM,SAX,JDOM,DOM4J)
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式比较
- 学习手记--怎样用c#处理xml文档.
- java中操作xml几种方式的比较和代码示例(DOM,SAX,JDOM,DOM4J)
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较
- java中(DOM,SAX,JDOM,DOM4J)操作xml方式的比较和代码示例
- ava中(DOM,SAX,JDOM,DOM4J)操作xml方式的比较和代码示例
- java中操作xml几种方式的比较和代码示例(DOM,SAX,JDOM,DOM4J)
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- C#对XML文档的操作[转载]
- java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- 四种操作xml的方式: SAX, DOM, JDOM , DOM4J的比较
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式的比较与详解(code稍作修改)
- 我整理的xml读写操作(sax方式)
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式的比较与详解
- C# 操作Xml文档的简单示例
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式的比较与详解