PHP实现动态删除XML数据的方法示例


Posted in PHP onMarch 30, 2018

本文实例讲述了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实现动态删除XML数据的方法示例

PHP 相关文章推荐
用PHP编程语言开发动态WAP页面
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
php文件缓存方法总结
Mar 16 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 PHP
PHP实现动态添加XML中数据的方法
Mar 30 #PHP
PHP实现动态创建XML文档的方法
Mar 30 #PHP
php实现微信模板消息推送
Mar 30 #PHP
Mac系统下安装PHP Xdebug
Mar 30 #PHP
php实现websocket实时消息推送
Mar 30 #PHP
总结PHP内存释放以及垃圾回收
Mar 29 #PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 #PHP
You might like
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
分析python切片原理和方法
2017/12/19 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Python requests设置代理的方法步骤
2020/02/23 Python
Django REST framwork的权限验证实例
2020/04/02 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
python 实现音频叠加的示例
2020/10/29 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
美国电视购物:QVC
2017/02/06 全球购物
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
业务经理的岗位职责
2013/11/16 职场文书
高二美术教学反思
2014/01/14 职场文书
演讲稿的写法
2014/05/19 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers