Home > Backend Development > PHP Tutorial > Create and insert nodes into XML documents

Create and insert nodes into XML documents

巴扎黑
Release: 2016-11-23 10:36:48
Original
1236 people have browsed it

Php file:

<?php 
  header("content-type:text/html;charset=utf-8"); 
  //获得表单提交的数据 
$data=$_POST[&#39;data&#39;]; 
if(!empty($data))                     //判断数据是否获得,不为空则继续执行 
{ 
   foreach($data[&#39;tag&#39;] as $v)        //遍历数组,获得具体内容 
   { 
        $content[$v[1]]=$v[2];      
   } 
   //json_encode 
    $content=json_encode($content); 
    $recom_position=$data[&#39;recom_position&#39;]; 
    $recom_title=$data[&#39;recom_title&#39;]; 
    $recom_url=$data[&#39;recom_url&#39;]; 
    //读取文件config.ini 
    $fp=fopen("data/config.ini","r"); 
    $a=fgets($fp); 
    fclose($fp); 
    
    $a=substr($a,1);     //截取字符串,去掉第一个空格 
    $b=explode(" ",$a);  //返回数组 
    //判断位置是否唯一 
    if(in_array($recom_position,$b)) 
    { 
        
        echo "<script language=&#39;javascript&#39;>"; 
        echo "alert(&#39;您选择的位置【 ".$recom_position." 】已经存在,请返回重新选择&#39;);"; 
        echo "window.location=&#39;index.html&#39;;"; 
        echo "</script>"; 
    } 
    else 
    { 
           $str=" ".$recom_position; 
           $fp=fopen("data/config.ini","a"); 
           fwrite($fp,$str); 
           fclose($fp); 
          //以xml格式组成字符串 
          $data="<data> 
                    <seqnum><![CDATA[".$data[&#39;recom_position&#39;]."]]></seqnum> 
                    <recom_position><![CDATA[".$data[&#39;recom_position&#39;]."]]></recom_position> 
                    <recom_title><![CDATA[".$data[&#39;recom_title&#39;]."]]></recom_title> 
                    <recom_url><![CDATA[".$data[&#39;recom_url&#39;]."]]></recom_url> 
                    <recom_content><![CDATA[[".$content."]]></recom_content> 
                    </data>"; 
          //创建一个文档实例 
           $document = new DOMDocument(&#39;1.0&#39;, "UTF-8"); 
        if(!is_file("data/AddArray.xml"))         //判断是否存在此文件,如果不存在则执行下面代码,创建xml文档及结构 
        { 
                  //使用缩进格式化输出 
                  $document->formatOutput = true; 
                  //创建<priority>根节点 
                  $root = $document->createElement(&#39;priority&#39;); 
                  $document->appendChild($root); 
                   //设置priority的属性 
                  $root->setAttribute(&#39;elapsedTime&#39;,&#39;352&#39;); 
                  $root->setAttribute(&#39;countNums&#39;,&#39;5&#39;); 
                  //创建<datalist>子节点 
                  $datalist = $document->createElement(&#39;datalist&#39;); 
                  //创建<data>子节点 
                  $data = $document->createElement(&#39;data&#39;); 
                  //创建<data>元素的第一个子节点<seqnum>,并设置其属性 
                  $seqnum = $document->createElement(&#39;seqnum&#39;); 
                  $seqnum->appendChild($document->createTextNode("<![CDATA[&#39;$recom_position&#39;]]>")); 
                  $data->appendChild($seqnum); 
                  //创建<data>元素的第二个子节点<recom_position>,并设置其属性 
                  $recomposition = $document->createElement(&#39;recom_position&#39;); 
                  $recomposition->appendChild($document->createTextNode("<![CDATA[&#39;$recom_position&#39;]]>")); 
                  $data->appendChild($recomposition); 
                  //创建<data>元素的第三个子节点<recom_title>,并设置其属性 
                  $recomtitle = $document->createElement(&#39;recom_title&#39;); 
                  $recomtitle->appendChild($document->createTextNode("<![CDATA[&#39;$recom_title&#39;]]>")); 
                  $data->appendChild($recomtitle); 
                  //创建<data>元素的第四个子节点<recom_url>,并设置其属性 
                  $recomurl = $document->createElement(&#39;recom_url&#39;); 
                  $recomurl->appendChild($document->createTextNode("<![CDATA[&#39;$recom_url&#39;]]>")); 
                  $data->appendChild($recomurl); 
                  //创建<data>元素的第五个子节点<recom_content>,并设置其属性 
                  $recomcontent = $document->createElement(&#39;recom_content&#39;); 
                  $recomcontent->appendChild($document->createTextNode("<![CDATA[&#39;$content&#39;]]>")); 
                  $data->appendChild($recomcontent); 
                  //追加<datalist>节点到根节点后 
                  $datalist->appendChild($data); 
                  $root->appendChild($datalist); 
                  //保存对象树到AddArray.xml 
                  $document->save(&#39;data/AddArray.xml&#39;); 
                  if(is_file("data/AddArray.xml")) 
                  { 
                      echo "<script language=&#39;javascript&#39;>"; 
                      echo "alert(&#39;数据提交成功!&#39;);"; 
                      echo "window.location=&#39;index.html&#39;;"; 
                      echo "</script>"; 
                  } 
                  else 
                  { 
                      echo "数据提交失败,<a href=&#39;index.html&#39;>点击这里</a>返回重新提交"; 
                  } 
            } 
            else 
            { 
                    //设置格式 
                    $document->formatOutput = true; 
                    //加载文件 
                    $document->load (&#39;data/AddArray.xml&#39;); 
                    //获取上级节点 
                    $utdm = $document->getElementsByTagName (&#39;datalist&#39;); 
                    //data 节点 
                    $info = $utdm->item(0); 
                    //获得data下面的子节点的数据 
                    $seqnum = $document->createElement("seqnum","<![CDATA[&#39;$recom_position&#39;]]>"); 
                    $recomposition = $document->createElement("recom_position","<![CDATA[&#39;$recom_position&#39;]]>"); 
                    $recomtitle = $document->createElement("recom_title","<![CDATA[&#39;$recom_title&#39;]]>"); 
                    $recomurl = $document->createElement("recom_url","<![CDATA[&#39;$recom_url&#39;]]>"); 
                    $recomcontent = $document->createElement("recom_content","<![CDATA[&#39;$content&#39;]]>"); 
                    $data = $document->createElement("data"); 
                    //给每个节点添加内容 
                    $data->appendChild($seqnum); 
                    $data->appendChild($recomposition); 
                    $data->appendChild($recomtitle); 
                    $data->appendChild($recomurl); 
                    $data->appendChild($recomcontent); 
                    $info->appendChild($data); 
                    //保存文档 
                    $document->save("data/AddArray.xml"); 
                    $fp = fopen("data/AddArray.xml", "w"); //打开XML文件,写入 
                    if(fwrite($fp,$document->saveXML())) 
                    { 
                          echo "<script language=&#39;javascript&#39;>"; 
                          echo "alert(&#39;数据提交成功!&#39;);"; 
                          echo "window.location=&#39;index.html&#39;;"; 
                          echo "</script>"; 
                    } 
                    else 
                    { 
                          echo "数据提交失败,<a href=&#39;index.html&#39;>点击这里</a>返回重新提交"; 
                    } 
                    fclose($fp);//关闭XML文件 
            } 
     } 
} 
else 
{ 
    echo "没有获得任何数据"; 
} 
?>
Copy after login


Related labels:
xml
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template