相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP實(shí)現(xiàn)動(dòng)態(tài)添加XML中數(shù)據(jù)的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)動(dòng)態(tài)添加XML中數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
前面簡單講述了xml文檔的創(chuàng)建,這里繼續(xù)討論xml中數(shù)據(jù)的動(dòng)態(tài)添加:
一. 代碼
<?php class Message_XML extends DomDocument{//定義類Message_XML并繼承DomDocument類 private $Root; public function __construct(){//構(gòu)造函數(shù) 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){//創(chuàng)建方法 $Root=$this->documentElement;//定義根節(jié)點(diǎn) $admin_id=date("Ynjhis"); $Node_admin_id=$this->createElement("admin_id");//創(chuàng)建節(jié)點(diǎn)admin_id $text=$this->createTextNode(iconv("GB2312","UTF-8",$admin_id));//創(chuàng)建一個(gè)文本節(jié)點(diǎn) $Node_admin_id->appendChild($text);//將文本節(jié)點(diǎn)添加到admin_id節(jié)點(diǎn)中 $Node_user=$this->createElement("user");//創(chuàng)建節(jié)點(diǎn)user $text=$this->createTextNode(iconv("GB2312","UTF-8",$user));//創(chuàng)建一個(gè)文本節(jié)點(diǎn) $Node_user->appendChild($text);//將文本節(jié)點(diǎn)添加到user節(jié)點(diǎn)中 $Node_address=$this->createElement("address");//創(chuàng)建節(jié)點(diǎn)address $text=$this->createTextNode(iconv("GB2312","UTF-8",$address));//創(chuàng)建一個(gè)文本節(jié)點(diǎn) $Node_address->appendChild($text);//將文本節(jié)點(diǎn)添加到address節(jié)點(diǎn)中 $Node_Record=$this->createElement("record");//創(chuàng)建節(jié)點(diǎn)record $Node_Record->appendChild($Node_admin_id);//將admin_id節(jié)點(diǎn)添加到record節(jié)點(diǎn)中 $Node_Record->appendChild($Node_user);//將user節(jié)點(diǎn)添加到record節(jié)點(diǎn)中 $Node_Record->appendChild($Node_address);//將address節(jié)點(diǎn)添加到record節(jié)點(diǎn)中 $Root->appendChild($Node_Record);//將record節(jié)點(diǎn)添加到根節(jié)點(diǎn)中 $this->save("message.xml");//生成XML文檔 echo "<script>alert('添加成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; } public function show_message(){//定義輸出XML文件中的內(nèi)容函數(shù) $Root=$this->documentElement;//定義根節(jié)點(diǎn) $xpath=new DOMXPath($this);//定義DOMXPath $Node_Record=$this->getElementsByTagName("record");//獲取節(jié)點(diǎn)record的標(biāo)簽 $Node_Record_length=$Node_Record->length;//獲取標(biāo)簽的數(shù)量 print"<table width='506' bgcolor='#FFFFCC'><tr>"; print"<td width='106' height='22' align='center'>"; print"<b>用戶名</b>"; print"</td><td width='400' align='center'>"; print"<b>留言信息</b></td></tr>"; for($i=0;$i<$Node_Record->length;$i++){//應(yīng)用for循環(huán)輸出查詢結(jié)果 $k=0; foreach($Node_Record->item($i)->childNodes as $articles){ //通過foreach語句讀取返回對(duì)象中的數(shù)據(jù) $field[$k]=iconv("UTF-8","GB2312",$articles->textContent);//實(shí)現(xiàn)編碼格式的轉(zhuǎn)換 $k++; } print"<table width='506' bgcolor='#FFFFCC'><tr>"; print"<td width='106' height='22' align='center'>"; print"$field[1]"; print"</td><td width='400' align='center'>"; print"$field[2]"; print"</td></tr></table>"; } } public function post_message(){//定義輸出表單的函數(shù) 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='添加數(shù)據(jù)'></td><td align='right'><a href='?Action=show_message'>查看數(shù)據(jù)</a> </td></tr></form></table>"; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>添加XML數(shù)據(jù)</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" >添加數(shù)據(jù)</a> </td></tr></table></td></tr></table> <?php $HawkXML=new Message_XML;//實(shí)例化Message_XML類 $Action="";//初始化為空值 if(isset($_GET['Action'])) $Action=$_GET['Action']; switch($Action){ case "show_message": $HawkXML->show_message();//當(dāng)參數(shù)值為show_message時(shí)執(zhí)行show_message()函數(shù) break; case "post_message": $HawkXML->post_message();//當(dāng)參數(shù)值為post_message時(shí)執(zhí)行post_message()函數(shù) break; case "add_message": $HawkXML->add_message($_POST['user'],$_POST['address']);//當(dāng)參數(shù)值為add_message時(shí)執(zhí)行add_message()函數(shù) break; } ?> </body> </html>