Maison > développement back-end > tutoriel php > Explication détaillée des étapes pour ajouter dynamiquement des données XML en PHP

Explication détaillée des étapes pour ajouter dynamiquement des données XML en PHP

php中世界最好的语言
Libérer: 2023-03-26 09:54:02
original
1525 Les gens l'ont consulté

Cette fois, je vais vous apporter une explication détaillée des étapes pour ajouter dynamiquement des données XML en PHP Quelles sont les précautions pour ajouter dynamiquement des données XML en PHP Voici des cas pratiques, jetons un coup d'oeil. .

La création de documents XML a été brièvement décrite précédemment. Nous continuons ici à discuter de l'ajout dynamique de données en XML :

1. >

<?php
  class Message_XML extends DomDocument{//定义类Message_XML并继承DomDocument类
   private $Root;
   public function construct(){//构造函数
    parent:: construct();
    if(!file_exists("message.xml")){//判断文件是否存在
     $xmlstr="<?xml version=&#39;1.0&#39; encoding=&#39;GB2312&#39;?><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(&#39;添加成功&#39;);location.href=&#39;".$_SERVER[&#39;PHP_SELF&#39;]."&#39;</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=&#39;506&#39; bgcolor=&#39;#FFFFCC&#39;><tr>";
    print"<td width=&#39;106&#39; height=&#39;22&#39; align=&#39;center&#39;>";
    print"<b>用户名</b>";
    print"</td><td width=&#39;400&#39; align=&#39;center&#39;>";
    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=&#39;506&#39; bgcolor=&#39;#FFFFCC&#39;><tr>";
     print"<td width=&#39;106&#39; height=&#39;22&#39; align=&#39;center&#39;>";
     print"$field[1]";
     print"</td><td width=&#39;400&#39; align=&#39;center&#39;>";
     print"$field[2]";
     print"</td></tr></table>";
    }
   }
   public function post_message(){//定义输出表单的函数
    print"<table width=&#39;506&#39; bgcolor=&#39;#FFFFCC&#39;><form method=&#39;post&#39; action=&#39;?Action=add_message&#39;>";
    print"<tr><td width=&#39;106&#39; height=&#39;22&#39;>    用户名:</td><td><input type=&#39;text&#39; name=&#39;user&#39; size=50></td></tr>";
    print"<tr><td width=&#39;106&#39; height=&#39;22&#39;>    留言信息:</td><td width=&#39;400&#39;><textarea name=&#39;address&#39; cols=&#39;48&#39; rows=&#39;5&#39; id=&#39;address&#39;></textarea></td></tr>";
    print"<tr><td width=&#39;106&#39; height=&#39;30&#39;>  <input type=&#39;submit&#39; value=&#39;添加数据&#39;></td><td align=&#39;right&#39;><a href=&#39;?Action=show_message&#39;>查看数据</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></table>
     <?php
      $HawkXML=new Message_XML;//实例化Message_XML类
      $Action="";//初始化为空值
      if(isset($_GET[&#39;Action&#39;])) $Action=$_GET[&#39;Action&#39;];
      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[&#39;user&#39;],$_POST[&#39;address&#39;]);//当参数值为add_message时执行add_message()函数
       break;
      }
     ?>
</body>
</html>
Copier après la connexion

2. Résultats de l'opération

Je crois qu'après avoir lu le cas dans ce cas article, vous maîtrisez la méthode, et il y aura des choses plus excitantes. Veuillez faire attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée des étapes pour obtenir dynamiquement les paramètres de fonction en PHP


Explication détaillée de l'utilisation du mode statut PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal