[收集]Cookie,XML(建立xml文檔,和查找一個結點)

1.關於Cookie:

(1)製作:

private void Button3_Click(object sender, System.EventArgs e)
  {
   HttpCookie cookUserInfo = new HttpCookie("UserInfo", System.Guid.NewGuid().ToString());
   cookUserInfo["FirstName"] = txtFirstName.Text;
   cookUserInfo["LastName"] = txtLastName.Text;
   cookUserInfo["Street"] = txtStreet.Text;
   cookUserInfo["City"] = txtCity.Text;
   cookUserInfo["State"] = txtState.Text;
   cookUserInfo["ZIP"] = txtZIP.Text;

   cookUserInfo.Expires = DateTime.Now.AddDays(30);

   Response.Cookies.Add(cookUserInfo);

  }

(2)調用:

private void Button4_Click(object sender, System.EventArgs e)
  {
   HttpCookie cookUserInfo = Request.Cookies["UserInfo"];

   txtFirstName.Text = cookUserInfo["FirstName"];
   txtLastName.Text = cookUserInfo["LastName"];
   txtStreet.Text = cookUserInfo["Street"];
   txtCity.Text = cookUserInfo["City"];
   txtState.Text = cookUserInfo["State"];
   txtZIP.Text = cookUserInfo["ZIP"];

  }

(3)添加或更改內容(與XML合用):

從客戶的機子上得到Cookie的ID,然後調用xml文檔.接着根據這個ID來修改相應用戶的信息(在xml文檔裏).

private void Button2_Click(object sender, System.EventArgs e)
  {
   HttpCookie cookUserID = Request.Cookies["UserID"];
   if( cookUserID == null)
    cookUserID = new HttpCookie("UserID", System.Guid.NewGuid().ToString());
   cookUserID.Expires = DateTime.Now.AddDays(30);
   Response.Cookies.Add(cookUserID);
   SetUserInfo(cookUserID.Value);
 }

private void SetUserInfo( string UserID)
  {
   string strPath = Server.MapPath( Request.ApplicationPath);
   DataSet dsUsers = GetUserData();
   
   
   DataRow rowUser = dsUsers.Tables["User"].Rows.Find(UserID);
   if(rowUser == null)
   {
    rowUser = dsUsers.Tables["User"].NewRow();
    dsUsers.Tables["User"].Rows.Add(rowUser);
   }
   rowUser["FirstName"] = txtFirstName.Text;
   rowUser["LastName"] = txtLastName.Text;
   rowUser["Street"] = txtStreet.Text;
   rowUser["City"] = txtCity.Text;
   rowUser["State"] = txtState.Text;
   rowUser["ZIP"] = txtZIP.Text;
   rowUser["ID"] = UserID;   
   dsUsers.WriteXml( strPath + "//UserInfo.xml" );

  }

private DataSet GetUserData()
  {
   string strPath = Server.MapPath( Request.ApplicationPath);
   DataSet dsUsers = new DataSet();
   dsUsers.ReadXmlSchema( strPath + "//UserInfo.xsd" );
   dsUsers.ReadXml( strPath + "//UserInfo.xml" );
   return dsUsers;

  }

2.關於XML操作:

(1)建立一個.xml文件

  private void Button1_Click(object sender, System.EventArgs e)
  {
  
   XmlTextWriter xtw = new XmlTextWriter( Request.PhysicalApplicationPath + "wxd.xml",System.Text.Encoding.UTF8 );
   xtw.Formatting = Formatting.Indented;
   xtw.WriteStartDocument(true);
   //結果:
   xtw.WriteComment("wxdInfomation");
   //文檔註釋 結果:
   xtw.WriteStartElement("Info");
   //XML Root 節點 結果:
   xtw.WriteStartElement("Employee",null);
   //XML 元素1 結果:
   xtw.WriteElementString("ID","1");
   //XML 元素1 鍵值 結果: 0301
   xtw.WriteElementString( "Name", "王菁" );
   //XML 元素1 鍵值 結果:1
   xtw.WriteElementString("Phone","111");
   //XML 元素1 鍵值 結果:100
   xtw.WriteEndElement();
   //XML 元素1 結束 結果:
   xtw.Flush();

   xtw.WriteStartElement("Employer",null);
   //XML 元素2 結果:
   xtw.WriteAttributeString("ID","1");
   xtw.WriteAttributeString("Name","王小迪");
   xtw.WriteAttributeString("Phone","000");
   //XML 元素2 屬性 結果:
   xtw.WriteEndElement();
   //XML 元素2 結束 結果:
   xtw.WriteEndElement();
   //XML Root 結束 結果:
   xtw.Flush();

   xtw.Close();//釋放資源 

 }

建立的.xml如下:

<?xml version="1.0" standalone="yes"?>
<!wxdInfomation>
<Info>
  <Employee>
    <ID>1</ID>
    <Name>王菁</Name>
    <Phone>111</Phone>
  </Employee>
  <Employer ID="1" Name="王小迪" Phone="000" />
</Info>

 

(2)查找xml中的一個結點的值:(通過asp.net顯示在一個TextBox中)

private void SearchElement( String id, ref String emladr )
  {
   const String filename = "record.xml";
   XmlTextReader reader = new XmlTextReader( filename );
   while( reader.Read() )
   {
    if( reader.NodeType == XmlNodeType.Element )
    {
     if( reader.Name.Equals( "ID" ) && reader.Depth == 2 )
     {
      reader.Read();
      if ( id.Equals( reader.Value.ToString() ) )
      {
       while( reader.Read() )
       {
        if( reader.NodeType == XmlNodeType.Element )
        {
         if( reader.Name.Equals( "Recipient" ) && reader.Depth == 2 )
         {
          reader.Read();
          emladr = reader.Value.ToString();
          break;          
         }
        }
       }
       break;
      }
     }
    }
   }
  }

  private void Button2_Click(object sender, System.EventArgs e)
  {
   String id;
   String emladr = "";
   id = InputID.Text.ToString();
   SearchElement( id, ref emladr );
   OutputEml.Text = emladr.ToString();
  
  }

 
發佈了17 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章