PHP動態刪除XML資料步驟詳解

來源:互聯網
上載者:User
這次給大家帶來PHP動態刪除XML資料步驟詳解,PHP動態刪除XML資料的注意事項有哪些,下面就是實戰案例,一起來看一下。

前面介紹了動態添加XML資料的方法,這裡在原有Message_XML類的基礎上稍作改進,實現動態刪除xml的功能:

一. 代碼

<?php  class Message_XML extends DomDocument{//定義類Message_XML並繼承DomDocument類   private $Root;   public function construct(){//建構函式    parent:: construct();    if(!file_exists("message.xml")){//判斷檔案是否存在     $xmlstr="<?xml version='1.0' encoding='GB2312'?><message></message>";     $this->loadXML($xmlstr);     $this->save("message.xml");//產生XML文檔    }else{     $this->load("message.xml");//如果存在則載入XML文檔    }   }   public function add_message($user,$address){//建立方法    $Root=$this->documentElement;//定義根節點    $admin_id=date("Ynjhis");    $Node_admin_id=$this->createElement("admin_id");//建立節點admin_id    $text=$this->createTextNode(iconv("GB2312","UTF-8",$admin_id));//建立一個文本節點    $Node_admin_id->appendChild($text);//將文本節點添加到admin_id節點中    $Node_user=$this->createElement("user");//建立節點user    $text=$this->createTextNode(iconv("GB2312","UTF-8",$user));//建立一個文本節點    $Node_user->appendChild($text);//將文本節點添加到user節點中    $Node_address=$this->createElement("address");//建立節點address    $text=$this->createTextNode(iconv("GB2312","UTF-8",$address));//建立一個文本節點    $Node_address->appendChild($text);//將文本節點添加到address節點中    $Node_Record=$this->createElement("record");//建立節點record    $Node_Record->appendChild($Node_admin_id);//將admin_id節點添加到record節點中    $Node_Record->appendChild($Node_user);//將user節點添加到record節點中    $Node_Record->appendChild($Node_address);//將address節點添加到record節點中    $Root->appendChild($Node_Record);//將record節點添加到根節點中    $this->save("message.xml");//產生XML文檔    echo "<script>alert('添加成功');location.href='".$_SERVER['PHP_SELF']."'</script>";   }   public function delete_message($admin_id){//定義刪除函數    $Root=$this->documentElement;//定義根節點    $xpath=new DOMXPath($this);//定義DOMXPath    $Node_Record=$xpath->query("//record[admin_id='$admin_id']");//執行查詢語句    $Root->removeChild($Node_Record->item(0));//刪除節點    $this->save("message.xml");//產生XML文檔    echo "<script>alert('刪除成功');location.href='".$_SERVER['PHP_SELF']."'</script>";   }   public function show_message(){//定義輸出XML檔案中的內容函數    $Root=$this->documentElement;//定義根節點    $xpath=new DOMXPath($this);//定義DOMXPath    $Node_Record=$this->getElementsByTagName("record");//擷取節點record的標籤    $Node_Record_length=$Node_Record->length;//擷取標籤的數量    print"<table width='506' bgcolor='#FFFFCC'><tr>";    print"<td width='106' height='22' align='center'>";    print"<b>使用者名稱</b>";    print"</td><td width='300' align='center'>";    print"<b>留言資訊</b></td></tr>";    for($i=0;$i<$Node_Record->length;$i++){//應用for迴圈輸出查詢結果     $k=0;     foreach($Node_Record->item($i)->childNodes as $articles){  //通過foreach語句讀取返回對象中的資料      $field[$k]=iconv("UTF-8","GB2312",$articles->textContent);//實現編碼格式的轉換      $k++;     }     print"<table width='506' bgcolor='#FFFFCC'><tr>";     print"<td width='106' height='22' align='center'>";     print"$field[1]";     print"</td><td width='300' align='center'>";     print"$field[2]";     print"</td><td width='100' align='center'>";     print"<a href='?Action=delete_message&admin_id=$field[0]'>刪除</a></td>";     print"</tr></table>";    }   }   public function post_message(){    print"<table width='506' bgcolor='#FFFFCC'><form method='post' action='?Action=add_message'>";    print"<tr><td width='106' height='22'>    使用者名稱:</td><td><input type='text' name='user' size=50></td></tr>";    print"<tr><td width='106' height='22'>    留言資訊:</td><td width='400'><textarea name='address' cols='48' rows='5' id='address'></textarea></td></tr>";    print"<tr><td width='106' height='30'>  <input type='submit' value='添加資料'></td><td align='right'><a href='?Action=show_message'>查看資料</a>    </td></tr></form></table>";   }  }?><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>刪除XML資料</title><style type="text/css"><!--body,td,th {  font-size: 12px;}--></style></head><body><table width="506" height="50" border="0" cellpadding="0" cellspacing="0" bgcolor="#33BE6B"> <tr>  <td width="506" height="50" valign="bottom" background="title.gif">   <table width="506">    <tr>     <td height="24" align="right" scope="col">  <a href="?Action=post_message" rel="external nofollow" >添加資料</a>   </td></tr></table></td></tr>     <?php      $HawkXML=new Message_XML;//執行個體化Message_XML類      $Action="";//初始化為空白值      if(isset($_GET['Action'])) $Action=$_GET['Action'];      switch($Action){       case "show_message":       $HawkXML->show_message();//當參數值為show_message時執行show_message()函數       break;       case "post_message":       $HawkXML->post_message();//當參數值為post_message時執行post_message()函數       break;       case "add_message":       $HawkXML->add_message($_POST['user'],$_POST['address']);//當參數值為add_message時執行add_message()函數       break;       case "delete_message":       $HawkXML->delete_message($_GET['admin_id']);//當參數值為delete_message時執行delete_message()函數       break;      }     ?></table></body></html>

二. 運行結果

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

PHP動態擷取函數參數步驟詳解

PHP延遲靜態繫結使用詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.