看到你,梁松远的博客

位置 » 主页 » 代码分享 » php 读写 xml

php 读写 xml

 读取xml信息

test.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <class>  
  3.     <student>  
  4.         <name>张三</name>  
  5.         <age>23</age>  
  6.         <intro>努力学习</intro>  
  7.     </student>  
  8.     <student>  
  9.         <name>李四</name>  
  10.         <age>23</age>  
  11.         <intro>努力学习</intro>  
  12.     </student>  
  13. </class>  

test.php

 

 

  1. <?php  
  2.     $xmldoc = new DOMDocument();  
  3.       
  4.     $xmldoc->load("test.xml");  
  5.       
  6.     $stus = $xmldoc->getElementsByTagName("student");  
  7.       
  8.     for($i=0;$i < $stus->length;$i++){  
  9.           
  10.         $stu = $stus->item($i);  
  11.         echo getNodeVal($stu,"name")."--".getNodeVal($stu,"age")."--".  
  12.                 getNodeVal($stu,"intro")."<br/>";  
  13.     }  
  14.       
  15.     function getNodeVal(&$MyNode,$tagName){  
  16.         return $MyNode->getElementsByTagName($tagName)->item(0)->nodeValue;  
  17.     }  
  18. ?>  

写xml:

 

  1. <span style="font-size:18px;"><?php  
  2.     $xmldoc = new DOMDocument("1.0","utf-8");  
  3.       
  4.     $xmldoc->load("classes2.xml");  
  5.       
  6.     //添加一个学生信息  
  7.     //创建学生结点  
  8.     $root = $xmldoc->getElementsByTagName("class")->item(0);  
  9.     $stu_node = $xmldoc->createElement("student");  
  10.       
  11.     $stu_node->setAttribute("sex""男");  
  12.       
  13.     //创建名字结点并且挂载到学生结点下  
  14.     $stu_node_name=$xmldoc->createElement("name");  
  15.     $stu_node_name->nodeValue = "唐唐";  
  16.     $stu_node->appendChild($stu_node_name);  
  17.       
  18.     $stu_node_age=$xmldoc->createElement("age");  
  19.     $stu_node_age->nodeValue = "24";  
  20.     $stu_node->appendChild($stu_node_age);  
  21.       
  22.     $stu_node_intro=$xmldoc->createElement("intro");  
  23.     $stu_node_intro->nodeValue = "我是唐唐,我一直很努力";  
  24.     $stu_node->appendChild($stu_node_intro);  
  25.       
  26.     //把学生结点挂载到根结点下  
  27.     $root->appendChild($stu_node);  
  28.       
  29.     $xmldoc->save("new.xml");  
  30. ?></span>  

 

 

删除结点:

 

  1. <?php  
  2.     $xmldoc = new DOMDocument("1.0","utf-8");  
  3.       
  4.     $xmldoc->load("test.xml");  
  5.     //删除一个结点  
  6.     $root = $xmldoc->getElementsByTagName("class")->item(0);  
  7.       
  8.     $stus = $xmldoc->getElementsByTagName("student");  
  9.       
  10.     $stu1 = $stus->item(2);  
  11.       
  12.     //$root->removeChild($stu1);  
  13.       
  14.     $stu1->parentNode->removeChild($stu1);  
  15.       
  16.     $xmldoc->save("test.xml");  
  17. ?>  


修改结点:

 

  1. <?php  
  2.     $xmldoc = new