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");
结果:
<?xml version="1.0"?> <!--注释内容--> <学生 专业="计算机"> <姓名>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; else v = 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, "<!ENTITY sex '男'>"); //6增加注释 textWriter.WriteComment("XML注释"); //7创建开始元素. textWriter.WriteStartElement("学生"); //创建属性1 textWriter.WriteAttributeString("专业", "计算机"); //创建属性2 textWriter.WriteAttributeString("日期", "2008-09-01"); //8创建元素1 textWriter.WriteElementString("姓名", "Danny"); //创建元素2 textWriter.WriteStartElement("性别"); textWriter.WriteEntityRef("sex");//创建实体的引用 textWriter.WriteEndElement(); //创建元素3 textWriter.WriteElementString("年龄", "25"); //9写CDATA. textWriter.WriteCData("年龄大了"); //10关闭根. textWriter.WriteEndElement(); textWriter.WriteEndDocument(); //11写XML文件,并关闭textWriter. textWriter.Flush(); textWriter.Close();
结果:
<?xml version="1.0"?> <!DOCTYPE 学生[<!ENTITY sex '男'>]> <!--XML注释--> <学生 日期="2008-09-01" 专业="计算机"> <姓名>Danny</姓名> <性别>&sex;</性别> <年龄>25</年龄> <![CDATA[年龄大了]]> </学生>
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()); }
转载于:https://blog.51cto.com/zhanyah/1319712