详细讲解XML的读、写操作
发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,这篇文章主要为大家详细介绍了解XML的读、写操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。1、XmlDocument创建XML文档//1首先要创建一个空的XML文
这篇文章主要为大家详细介绍了解XML的读、写操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
1、XmlDocument创建XML文档
//1首先要创建一个空的XML文档XmlDocument xmldoc = new XmlDocument();//2在XML的文档的最头部加入XML的声明段落XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");xmldoc.AppendChild(xmlnode);//3增加注释XmlComment xmlComm = xmldoc.CreateComment("注释内容");xmldoc.AppendChild(xmlComm);//4为XML文档加入元素//加入一个根元素XmlElement xmlelem = xmldoc.CreateElement("", "学生", "");//xmltext = xmldoc.CreateTextNode("Root Text");//xmlelem.AppendChild(xmltext);XmlAttribute xmlAttr = xmldoc.CreateAttribute("专业");xmlAttr.Value = "计算机";xmlelem.Attributes.Append(xmlAttr);xmldoc.AppendChild(xmlelem);//注释:其中"xmlelem"是创建的"XmlElement"对象,"xmltext"是"XmlText"对象//增加子元素XmlElement xmlelem2 = xmldoc.CreateElement("姓名");XmlText xmltext = xmldoc.CreateTextNode("Danny");xmlelem2.AppendChild(xmltext);xmlelem.AppendChild(xmlelem2);//xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);XmlElement xmlelem3 = xmldoc.CreateElement("性别");xmltext = xmldoc.CreateTextNode("男");xmlelem3.AppendChild(xmltext);xmlelem.AppendChild(xmlelem3);//xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);//5保存创建好的XML文档xmldoc.Save("c:\\sampledata1.xml");
结果:
<学生 专业="计算机"> <姓名>Danny姓名> <性别>男性别> 学生>
2、XmlDocument读取XML文档
XmlNodeReader reader = null;try{string s = "", v = "";XmlDocument doc = new XmlDocument();// 装入指定的XML文档doc.Load("C:\\sampledata1.xml");//// 创建一个XmlTextReader对象,读取XML数据//XmlTextReader reader = new XmlTextReader("c:\\books.xml");//// 载入XmlTextReader类的对象//doc.Load(reader);// 设定XmlNodeReader对象来打开XML文件reader = new XmlNodeReader(doc);// 读取XML文件中的数据,并显示出来while (reader.Read()){//判断当前读取得节点类型switch (reader.NodeType){case XmlNodeType.Element:s = reader.Name;break;case XmlNodeType.Text:{if (s.Equals("Name"))v = reader.Value;elsev = reader.Value;}break;}}}finally{//清除打开的数据流if (reader != null)reader.Close();}
3、XmlTextWriter创建XML文档
//1 创建XmlTextWriter类的实例对象XmlTextWriter textWriter = new XmlTextWriter("c:\\sampledata2.xml", null);//2格式设置,对元素内容进行缩进textWriter.Formatting = Formatting.Indented;//3书写版本为"1.0"的 XML声明textWriter.WriteStartDocument();//4写出在名称和文本之间带有空格的处理指令//String PItext="type='text/xsl' href='book.xsl'";//textWriter.WriteProcessingInstruction("xml-stylesheet", PItext);//5增加 指定名称和 可选属性 的DOCTYPE 声明textWriter.WriteDocType("学生", null, null, "");//6增加注释textWriter.WriteComment("XML注释");//7创建开始元素.textWriter.WriteStartElement("学生");//创建属性1textWriter.WriteAttributeString("专业", "计算机");//创建属性2textWriter.WriteAttributeString("日期", "2008-09-01");//8创建元素1textWriter.WriteElementString("姓名", "Danny");//创建元素2textWriter.WriteStartElement("性别");textWriter.WriteEntityRef("sex");//创建实体的引用textWriter.WriteEndElement();//创建元素3textWriter.WriteElementString("年龄", "25");//9写CDATA.textWriter.WriteCData("年龄大了");//10关闭根.textWriter.WriteEndElement();textWriter.WriteEndDocument();//11写XML文件,并关闭textWriter.textWriter.Flush();textWriter.Close();
结果:
]><学生 日期="2008-09-01" 专业="计算机"> <姓名>Danny姓名> <性别>&sex;性别> <年龄>25年龄>学生>
4、XmlTextReader读取XML文档
// 创建一个XmlTextReader类的对象并调用Read方法来读取文件XmlTextReader textReader = new XmlTextReader("C:\\sampledata2.xml");textReader.Read();// 节点非空则执行循环体while (textReader.Read()){XmlNodeType nType = textReader.NodeType;//当前节点的类型switch (nType){case XmlNodeType.XmlDeclaration:break;case XmlNodeType.Comment:break;case XmlNodeType.Attribute:break;case XmlNodeType.Element:break;case XmlNodeType.Entity:break;case XmlNodeType.DocumentType:break;case XmlNodeType.Whitespace:break;}// 读取第一个元素textReader.MoveToElement();Response.Write("-----------------------");// 读取该元素的属性并显示在控制台中Response.Write("Name:" + textReader.Name);Response.Write("Base URI:" + textReader.BaseURI);Response.Write("Local Name:" + textReader.LocalName);Response.Write("Attribute Count:" + textReader.AttributeCount.ToString());Response.Write("Depth:" + textReader.Depth.ToString());Response.Write("Line Number:" + textReader.LineNumber.ToString());Response.Write("Node Type:" + textReader.NodeType.ToString());Response.Write("Attribute Count:" + textReader.Value.ToString());}
以上就是XML的读、写操作的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!