您的位置:首页 > 编程语言 > C#

用C#操作XML

2005-03-07 21:31 288 查看
用C#读取,添加,修改,删除XML文件内容.
UserBasicInfo.xml

   <?xml version="1.0"?>
<UserBasicInfo>
  <UserInfo>
    <userGuid>userGuid</userGuid>
    <userID>jiavia</userID>
    <userPassword>19801020</userPassword>
    <userQuestion>?</userQuestion>
    <userAnwser>a</userAnwser>
    <userName>卡卡西</userName>
    <userSex>男</userSex>
    <userBirth>19801020</userBirth>
    <userEmail>jiavia@gmail.com</userEmail>
    <userContactInfo>12345</userContactInfo>
  </UserInfo>
  <UserInfo>
    <userGuid>zeoyeo</userGuid>
    <userID>hhhhhhhh</userID>
    <userPassword>147</userPassword>
    <userQuestion>789</userQuestion>
    <userAnwser>963</userAnwser>
    <userName>321</userName>
    <userSex>159</userSex>
    <userBirth>753</userBirth>
    <userEmail>456</userEmail>
    <userContactInfo>182</userContactInfo>
  </UserInfo>
</UserBasicInfo>

ControlXML.cs

//读取,添加,修改,删除节点
using System.Xml;
using System;

namespace XMLTest.AccessXML
{
 /// <summary>
 /// ControlXML 的摘要说明。
 /// </summary>
 public class ControlXML
 {
        private XmlDocument xmlDoc;
  public ControlXML()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
   xmlDoc=new XmlDocument();
   xmlDoc.Load("D://Study//C#//WinForm//XMLTest//XMLTest//AccessXML//UserBasicInfo.xml");
  }
  public void ReadNode()
  {
   XmlNode xnRoot=xmlDoc.DocumentElement;//获取唯一表示的根节点.
   XmlNodeList xnlUserInfo=xnRoot.ChildNodes;//获取根节点的子节点.
   
   foreach(XmlNode xnTheUser in xnlUserInfo)
   {
                XmlNodeList xnlUserSub=xnTheUser.ChildNodes;
                foreach(XmlNode xnSub in xnlUserSub)
    {
     Console.WriteLine(xnSub.InnerText);//显示子节点点文本
     
       }
                Console.WriteLine("----------------------");
   }
   
  }
  public void AddNode(string userGuid,string userID,string userPassword,string userQuestion,
                   string userAnwser,string userName,string userSex,string userBirth,
                   string userEmail,string userContactInfo)//添加节点.
  {
   
   
   //XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
   XmlNode xnRoot=xmlDoc.DocumentElement;//查找<UserBasicInfo>根节点(元素)
           
            XmlElement xeUserInfo=xmlDoc.CreateElement("UserInfo");//创建一个<UserInfo>节点
   XmlElement xesub1=xmlDoc.CreateElement("userGuid");
   xesub1.InnerText=userGuid;//节点.用户唯一识别码
            xeUserInfo.AppendChild(xesub1);//添加到<USerInfo>节点中.
   XmlElement xesub2=xmlDoc.CreateElement("userID");
   xesub2.InnerText=userID;//节点.用户ID
   xeUserInfo.AppendChild(xesub2);//添加到<USerInfo>节点中
   XmlElement xesub3=xmlDoc.CreateElement("userPassword");
   xesub3.InnerText=userPassword;//节点.用户密码
   xeUserInfo.AppendChild(xesub3);//添加到<USerInfo>节点中
   XmlElement xesub4=xmlDoc.CreateElement("userQuestion");
   xesub4.InnerText=userQuestion;////节点.用户密码提示
   xeUserInfo.AppendChild(xesub4);//添加到USerInfo节点中.
   XmlElement xesub5=xmlDoc.CreateElement("userAnwser");
   xesub5.InnerText=userAnwser;//节点.用户密码回答
   xeUserInfo.AppendChild(xesub5);//添加到<USerInfo>节点中
   XmlElement xesub6=xmlDoc.CreateElement("userName");
   xesub6.InnerText=userName;//节点.用户名
   xeUserInfo.AppendChild(xesub6);//添加到<USerInfo>节点中
   XmlElement xesub7=xmlDoc.CreateElement("userSex");
   xesub7.InnerText=userSex;////节点.用户性别
   xeUserInfo.AppendChild(xesub7);//添加到USerInfo节点中.
           
   XmlElement xesub8=xmlDoc.CreateElement("userBirth");
   xesub8.InnerText=userBirth;//用户Email
   xeUserInfo.AppendChild(xesub8);//添加到<USerInfo>节点中
   XmlElement xesub9=xmlDoc.CreateElement("userEmail");
   xesub9.InnerText=userEmail;//用户Email
            xeUserInfo.AppendChild(xesub9);//添加到<USerInfo>节点中
   XmlElement xesub10=xmlDoc.CreateElement("userContactInfo");
            xesub10.InnerText=userContactInfo;
   xeUserInfo.AppendChild(xesub10);
   xnRoot.AppendChild(xeUserInfo);//将<UserInfo>添加到<UserBasicInfo>节点中.
   xmlDoc.Save("D://Study//C#//WinForm//XMLTest//XMLTest//AccessXML//UserBasicInfo.xml");

  }
  public void SetNode(string userID,string userPassword,string userQuestion,
                    string userAnwser,string userName,string userSex,string userBirth,
                    string userEmail,string userContactInfo )//修改节点
  {
    XmlNode xnRoot=xmlDoc.DocumentElement;
             XmlNode xnlUserInfo=xnRoot.SelectSingleNode("descendant::UserInfo[userID='"+userID+"']");
   
     xnlUserInfo["userPassword"].InnerText=userPassword;
     xnlUserInfo["userQuestion"].InnerText=userQuestion;
     xnlUserInfo["userAnwser"].InnerText=userAnwser;
     xnlUserInfo["userName"].InnerText=userName;
     xnlUserInfo["userSex"].InnerText=userSex;
     xnlUserInfo["userBirth"].InnerText=userBirth;
     xnlUserInfo["userEmail"].InnerText=userEmail;
     xnlUserInfo["userContactInfo"].InnerText=userContactInfo;
   
   
   xmlDoc.Save("D://Study//C#//WinForm//XMLTest//XMLTest//AccessXML//UserBasicInfo.xml");
             
  }
  public void DelNode(string userID)
  {
   XmlNode xnRoot=xmlDoc.DocumentElement;
   //找出第一个与之匹配的节点.
   XmlNode xnlUserInfo=xnRoot.SelectSingleNode("descendant::UserInfo[userID='"+userID+"']");
            xnRoot.RemoveChild(xnlUserInfo);
            xmlDoc.Save("D://Study//C#//WinForm//XMLTest//XMLTest//AccessXML//UserBasicInfo.xml");
  }
 }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# xml string email system class