当前位置:编程学习 > XML/UML >>

xml文件读取和写入的实现方式小结

xml文件的读取和写入主要又两种,一种是XMLDocument,另一种是XMLtextwriter/xmltextreader。

1、XMLtextwriter/xmltextreader

 

     读取程序:

             string path="myxml.xml";

            string str = "";
            XmlTextReader xtr = new XmlTextReader(path);
         

 ///read()这个方法的返回值总是为真,直到到达文件的底部时,返回值才变为假。换句话说, 循环在文件的开始时启动并且读入所有的节点, 一次读入一个节点, 直到到达文件的结尾:

    try

     {
           while(xtr.Read())

            ///此时,xtr里面有着当前节点的信息也就是从刚刚获得数据的那个节点的信息。也就是xtr.value就是当前元素的值,可以用if(str.name==“”)来获得感兴趣的元素的值
            {
                switch (xtr.NodeType)
                {
                    case XmlNodeType.Element:
                        str += "Element:" + xtr.Name;
                        break;
                    case XmlNodeType.Text:
                        str += "Text:" + xtr.Value;
                        break;
                    case XmlNodeType.EndElement:
                        str += "EndElement:" + xtr.Name;
                        break;
                    default:
                        break;
                }
                  
                    
            }
            tb.AppendText(str);

            xtr.Close();

         }

       catch

          {

          }

当使用NodeType属性时,理解节点怎么联系到XML单元是非常重要的。例如, 看下列 XML元素:

<city>nanjing</city>

XMLtextReader 把这个元素看作 3 个节点,顺序如下:

1.<city>标签被读为类型 XMLNodeType.Element 节点,元素的名字“city”可从 XMLTextReader 的Name属性中获得。

2.文本数据“nanjing”被读为类型为XMLNodeType.Text的节点。数据“nanjing ” 可从XMLTextReader 的Value属性中取得。

3.</city>标签被读为类型为XMLNodeType.EndElement 节点。同样,元素的名称“city”可从XMLTextReader的Name属性中获得。

如果XMLTextReader遇到一个错误, 例如出现违反XML句法的情况,它抛出一个System.XML.XMLException类型的异常。使用这个类的代码应该总是被保护 ( 在Try……Catch块中)。

 

 

          写入程序:

            XmlTextWriter xtw = new XmlTextWriter(path,ASCIIEncoding.ASCII);
            xtw.Formatting = Formatting.Indented;
            xtw.WriteStartDocument();
            xtw.WriteComment("it's happy's first xml file!");
            xtw.WriteStartElement("grandfather");
            xtw.WriteStartElement("father");
            xtw.WriteName("happy");
            xtw.WriteValue("happy123");
            xtw.WriteElementString("me", "nuaa");
            xtw.WriteEndElement();
            xtw.WriteEndElement();
            xtw.WriteEndDocument();
            xtw.Flush();
            xtw.Close();
            MessageBox.Show("XML文件保存成功!");

 

2、XMLDOCUMENT

      写入程序:

            

 try
            {
                string path = "happy.xml";
                XmlDocument xd = new XmlDocument();
               
                xd.CreateXmlDeclaration("1.0", "utf-8", "yes");
                XmlNode root = xd.CreateElement("NUAA");
                XmlNode xn = xd.CreateElement("CAE");
                XmlAttribute xa = xd.CreateAttribute("name");

                xa.Value = "happyhuang";
                root.

补充:Web开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,