现在的位置: 首页 > 综合 > 正文

在c#中XML文件的读写

2013年11月30日 ⁄ 综合 ⁄ 共 2824字 ⁄ 字号 评论关闭

在c#中XML文件的读写,我个人认为有以下几种:
一:读取数据
 1.用XmlDocument 类
   XmlDocument xml = new XmlDocument();
            xml.Load("mycon.xml");
            XmlNode xn = xml.DocumentElement;
            foreach (XmlNode x in xn.ChildNodes)
            {
                switch (x.Name)
                {
                    case "names":
                        string name = x.InnerText;
                        break;
                    case "age":
                        string age = x.InnerText;
                        break;
                    case "address":
                        string add = x.InnerText;
                        break;
                    default:
                        break;
                }
            }
2.用DataSet数据集读取或者DataTable也行
 DataSet ds = new DataSet();
           ds.ReadXml(Path);

 DataTable dt = new DataTable();
            dt.ReadXml(path);
很明显这种读写是很方便,也很强大。

3.用XmlDocument类
 
   XmlDocument doc = new XmlDocument ( ) ;
   
   try
   {
   // 把merchandise.xml配置文件读入内存
    doc.Load("merchandise.xml");
   }
   catch
   {
    MessageBox.Show("XML文档读取错误!");
   }

   //设置读取XML文件的起点,如果不设置的话则默认从根节点开始访问
   XmlNode merchandiseNode = doc.SelectSingleNode("/merchandise");
   //判断开始节点是否存在
   if (merchandiseNode != null)
   {

    // 设定XmlNodeReader对象来打开XML文件
    XmlNodeReader nodereader = new XmlNodeReader( merchandiseNode );

    //从开始节点读取XML文件中的节点
    while (nodereader.Read())
    {
     //测试当前内容节点是否是开始标记,只对开始标记进行处理
     if (nodereader.IsStartElement())
     {
      //如果读取得节点为Begin,则读取它的内容作为字符串返回
      if (nodereader.Name == "name")
      {
       nametextBox.Text = nodereader.ReadString();
      }
      //如果读取得节点为End,则读取它的内容作为字符串返回
      if (nodereader.Name == "price")
      {
       //显示为选课的结束时间
       pricetextBox.Text = nodereader.ReadString();
      }
     }
    }
              
   }

二:写入数据
1.XmlWriter类
            XmlWriterSettings xws = new XmlWriterSettings();
            xws.Indent = true;//设置数据的缩进对齐
            XmlWriter writer = XmlWriter.Create("txt.xml", xws);
            writer.WriteStartElement("Stock");
            writer.WriteAttributeString("Symbol", "bbs");
            writer.WriteElementString("Price", "12", "2222");
            writer.WriteElementString("Change", XmlConvert.ToString(33));
            writer.WriteElementString("Volume", "bbb");
            writer.WriteEndElement();
            writer.Close();
2.XmlTextWriter类
           XmlTextWriter TWrite = new XmlTextWriter(“dt.xml, Encoding.GetEncoding("gb2312"));
            TWrite.Formatting = Formatting.Indented;
            TWrite.WriteStartElement("Student");
            TWrite.WriteAttributeString("Sock", "New");
            TWrite.WriteElementString("Name", "AAA");
            TWrite.WriteElementString("Sex", "男");
            TWrite.WriteElementString("Age", "20");
            TWrite.WriteEndElement();
            TWrite.Close();
 3.DataSet的写入或DataTable写入
           
 DataSet ds = new DataSet();
          ds.Tables[0].WriteXml(path);

 DataTable dt = new DataTable();
            dt.WriteXml(path);
其实这两种方法就是一个样的,都会自动生成xml结构。

 

 

抱歉!评论已关闭.