`
cakin24
  • 浏览: 1398406 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

PHP动态删除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'>&nbsp;&nbsp;&nbsp;&nbsp;用户名:</td><td><input type='text' name='user' size=50></td></tr>";
		print"<tr><td width='106' height='22'>&nbsp;&nbsp;&nbsp;&nbsp;留言信息:</td><td width='400'><textarea name='address' cols='48' rows='5' id='address'></textarea></td></tr>";
		print"<tr><td width='106' height='30'>&nbsp;&nbsp;<input type='submit' value='添加数据'></td><td align='right'><a href='?Action=show_message'>查看数据</a>&nbsp;&nbsp;&nbsp;&nbsp;</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">&nbsp;&nbsp;<a href="?Action=post_message">添加数据</a>&nbsp;&nbsp;&nbsp;</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>

 

二 运行结果

 
  • 大小: 2.4 KB
分享到:
评论

相关推荐

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

    本文将通过一个名为`Message_XML`的自定义类来演示如何实现动态删除XML数据。这个类扩展了PHP内置的`DomDocument`类,提供了一种方便的方式来创建、删除和显示XML文档的内容。 首先,`Message_XML`类的构造函数负责...

    XML分页排序数据岛

    总结来说,“XML分页排序数据岛”是利用XML数据岛技术,在客户端实现数据的动态分页和排序功能,以提升网页的交互性和效率。通过合理的数据处理和JavaScript编程,可以创建出功能强大的、对用户友好的Web应用。

    php对xml文件增删改查,对xml数据进行分页

    通过这种方式,您可以利用PHP的`SimpleXMLElement`类有效地管理和展示XML数据,同时实现分页功能。这个方法特别适合于小规模的网站应用,但请注意,对于大规模数据,可能需要更高效的数据存储和检索解决方案,如...

    XML的数据源对象(数据岛)

    数据源对象(DSO)是实现数据岛的关键,它将XML文档视作类似数据库的对象,允许对XML数据进行读取、添加、删除和更新等操作。数据岛的特点包括使用`&lt;xml&gt;`标签嵌入XML数据,内存中以树状结构解析XML,并能通过数据...

    PHP解析XML文档

    - **添加/删除节点**:支持动态添加或删除节点,方便修改XML文档。 - **转换为数组或JSON**:可通过`json_encode()`或`json_decode()`函数将SimpleXML对象转换为数组或JSON格式,便于进一步处理。 #### 七、总结 ...

    php+xml php+ajax php+mysql

    例如,使用SimpleXML库可以方便地将XML数据转换为PHP对象,便于操作。同时,PHP也可以生成XML响应,为前端提供结构化数据。 **AJAX(Asynchronous JavaScript and XML)** AJAX不是一种单一的技术,而是一种利用...

    Flash处理XML文档数据教程

    5. **动态更新XML**:如果你需要修改XML数据,可以直接通过XML对象修改属性值或添加、删除节点,然后保存回文件。 6. **数据绑定**:Flash支持数据绑定,允许XML数据与UI组件直接关联。当XML数据变化时,界面会自动...

    PHP操作xml类

    4. **删除XML节点**: - `DOMDocument`提供`removeChild`方法: ```php $parent_node = $xpath-&gt;query('//parent-node')-&gt;item(0); $parent_node-&gt;removeChild($node); ``` - `SimpleXMLElement`没有直接的...

    php操作xml实例代码

    10. **示例代码**: 在提供的文件名中,`index.php`可能是显示XML数据的主页面,`add.php`可能用于添加新的XML元素,`edit.php`用于编辑现有元素,而`del.php`用于删除元素。每个文件可能包含上述方法的具体实现。 ...

    php操作xml的三种方法

    它的主要优点在于其易用性和对XML数据的直观访问。例如,你可以通过属性和方法直接访问XML元素和属性: ```php $xml = simplexml_load_string('&lt;root&gt;&lt;element&gt;Value&lt;/element&gt;&lt;/root&gt;'); echo $xml-&gt;element; /...

    PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节

    通过以上内容,我们可以了解到XML作为一种数据交换标准的重要性,并且在PHP中处理XML数据时有多种工具可供选择。了解和掌握这些技术对于开发Web应用程序和处理服务器端数据至关重要。在后续文章中,我们还将进一步...

    浅析PHP对XML文档的基本操作.pdf

    本文档旨在介绍 PHP 对 XML 文档的基本操作,包括创建 XML 文档、遍历 XML 文档、添加 XML 数据、修改 XML 数据和删除 XML 数据。 创建 XML 文档 要创建 XML 文档,需要使用 PHP 的 DOMDocument 类。首先,创建一...

    PHP XML操作的各种方法解析(比较详细)

    DOMDocument类提供了一个树形模型的接口来处理XML文档,允许动态地创建、修改和删除XML文档。 **示例代码:** ```php $doc = new DOMDocument(); $doc-&gt;loadXML($data); $nodes = $doc-&gt;getElementsByTagName('...

    PHP对XML的解析

    SimpleXML组件还提供了多种方法来查询、添加、删除和修改XML数据,例如: - 使用`-&gt;children()`获取子节点。 - 使用`-&gt;addChild()`添加新的子节点。 - 使用`-&gt;asXML()`将SimpleXML对象转换回XML字符串。 - 使用`-&gt;...

    通过php删除xml文档内容的方法

    在处理XML文档时,PHP提供了一套完整的库来解析和操作XML数据,这些操作包括但不限于读取XML文档、修改XML文档、删除XML文档内容以及创建XML文档。本文主要讨论如何使用PHP来删除XML文档中的特定内容,并提供了两个...

    使用Ajax动态删除数据前台直接显示结果

    Ajax,即Asynchronous JavaScript and XML(异步JavaScript和XML),允许我们在不重新加载整个网页的情况下与服务器交换数据并局部更新页面,从而实现了前端界面的动态实时更新。 首先,我们需要理解Ajax的基本工作...

    PHP100视频教程90:PHP DOM 创建生成多功能 XML文件

    通过DOM,我们可以对XML文档进行添加、删除、修改和查找节点的操作。在PHP中,`DOMDocument`类是DOM的核心,它是整个XML文档的根节点,而`DOMElement`类则代表XML文档中的元素节点。 要创建一个新的XML文档,我们...

    xml存储留言方案php版-删除留言(源代码)

    `notes.php`文件可能是用来展示所有留言的脚本,它可能包含读取`notes.xml`文件,解析XML数据并将其转换为HTML以便在网页上显示的代码。例如: ```php &lt;?php $xml = simplexml_load_file('notes.xml'); foreach ($...

Global site tag (gtag.js) - Google Analytics