ASPNET和XML

ASPNET和XML之间的关系
1 XML和DataSet之间的操作,利用DataSet直接读取(写入)XML中的文件
 1)DataSet.ReadXml(string strFileName)
 2) DataSet.WriteXml(string strFileName,string name,string pwd)
 写入
 priavte void WriteXml(string strFileName)
 {
  DataSet ds=new DataSet("stu");
  ds.ReadXml(strFileName);
  //添加记录
  DataRow dr=new ds.Tables["0"].NewRow();
  dr["Name"]=name;
  dr["pwd"]=pwd;
  ds.Tables[0].Rows.Add(dr);
  ds.WriteXml(strFileName);
 }
 读出
 priavte void ReadXml(string strFileName,DataGrid dgrid)
 {
   DataSet ds=new DataSet();
   ds.ReadXml(strFileName);
   dgrid.DataSource=ds.Tables["0"].DefaultView;
   dgrid.DataBind();
 }
 2 直接使用XML读取或写入文件
   foreach(XmlNode element in root.ChildNodes)
   XmlTextWriter
   使用的空间: using System.Xml
   1)读取XMl
    priavte void ReadXml(string strFileName,ListBoc listbox)
    {
      XmlDocument doc=new XmlDocument();
      doc.Load(strFileName);
      XmlNode root=doc.DocumentElement;
      ArrayList aryList=new ArrayList();
      foreach(XmlNode element in root.ChildNodes)
         aryList.Add(element.FirstChild.Value);
      listbox.DataSource=aryList;
      listbox.Dataind(); 
    }
    2)写入XML
    priavte void WriteXml(string strFileName)
    {
      //创建XML文件流
      FileStream fileStream=new FileStream(strFileName,FileMode.Create);
      //使用文件流对象创建XmlTextWriter
      XmlTextWriter xmlWriter = new XmlTextWriter(fileStream,System.Text.encoding.Unicode);
      xmlWriter.Formatting=Formatting.Indented;
      try
      {
         //调用方法
         XmlWrite(xmlWriter,"MSFT","kevin","12345");
         xmlWrite.Close();
      }
      catch
      {
        ......
      }
    }
    priavte void XmlWrite(XmlWriter writer,sting symbol,string name,string pwd)
    {
      writer.WriteStartElement("Stock");
      writer.WriteAttributeString("Symbol",symbol);
      writer.WriteElementString("name",XmlConvert.ToString(name));
      writer.WriteElementString("pwd",XmlConvert.ToString(pwd));
      writer.WriteendElement();
     
    }
  3 对XML中文件元素的操作
    Laod
    SelectSingleNode
    CreateElement
    Save
    1)Add
    private void AddXml(string fileName)
    {
       XmlDocument doc=new XmlDocument();
       doc.Load(fileName);
       XmlNode root=doc.SelectSingleNode("Users");
       XmlElement xe1=doc.CreateElement("user");
       XmlElement xesub1=doc.CreateElement("name");
       xesub1.InnerText="Kevin";
       xe1.AppendChild("xesub1");
       root.AppendChild(xe1);
       doc.Save(fileName);
    }
    2)DEL
    priavte void DelXml(string filename,string name)
    {
       XmlDocument doc=new XmlDocument();
       doc.Load(filename);
       XmlNodeList xnl=doc.SelectSingleNode("Users").ChildNodes;
       foreach(XmlNode xn in xnl)
       {
         XmlElement xe=(XmlElement)xn;
         XmlNodeList node = xe.GetElementByTagName("name");
         if(node.Count>0)
         {
           if(node[0].InnerText==name)
             xe.RemoveAll();
           break; 
         }
       }
       doc.Save(fileName);
    }
    3)Update
    private void UpdateXml(string filename,string oldname,string newpwd)
    {
      XmlDocument doc=new XmlDocument();
      doc.Load(filename);
      XmlNodeList nodelist=doc.SelectSingleNode("Users").ChildNodes;
      foreach(XmlNode xn in nodelist)
      {
        XmlElement xe=(XmlElement)xn;
        XmlNodeList node = xe.GetElementByTagName("name");
        if(node.Counr>0)
        {
          if(node[0].InnerText==oldname)
          {
            XmlNodeList nls=xe.ChildNodes;
            foreach(XmlNode xn1 in nls)
            {
              XmlElement xe2=(XmlElement)xn1;
              if(xe2.Name=="pwd")
              {
                xe2.InnerText=newpwd;
                break;
              }
            }
          }
        }
      }
      doc.Save(filename);
    } 

5  验证XML文件的正确性
    private void VilidateXml(string filename,string vrxml)
    {
      FileStream stream=new FileStream(filename,Fileode.Open);
      //创建验证的类
      XmlValidatingReader vr=new XmlValidatingReader(stream,XmlNodeType.Element,null);
      //加载验证框架
      vr.Schemas.Add(null,vrxml);
      //说明验证的方式是根据XML构架
      vr.ValidationType=ValidationType.Schema;
      vr.ValidationEventHandler+=new ValidationEventHandler(ValidationHandler);
      //对文档验证
      while(vr.Read())
      stream.Close();
    }
    priavte void ValidationHandler(object sender,ValidationEventArgs args)
    {
      Response.Write("OK");
    }   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值