PHP自学--Dom技术

使用PHP对XML进行操作经常使用以下几种技术

1、PHP dom
2、PHP结合XPath操作Xml
3、Simplexml技术

Dom(Document object model)文档-对象-模型,核心思想是把一个Xml文件,看成一个对象模型,然后通过对象的方式来操作Xml文件。

创建一个Xml文件

在学习过程中发现,自己直接编写的Xml文件,在调用Xml函数的时候总是不能被正确的识别,所以先用PHP来创建一个Xml文件,再进行操作,直接看代码

    <?php  
        //实例化一个DomDocument对象  
        $dom = new DomDocument('1.0', 'UTF-8');  
        //如果文件不存在就创建一个  
        if (!file_exists("xml_test.xml")){  
            header("Content-Type: text/plain");  
            $root = $dom->createElement("class");  
            $dom->appendChild($root);  
            $dom->save("xml_test.xml");  
        } else{  
            $dom->load("xml_test.xml");    
        }  
        print $dom->saveXML();  
    ?>  

2、增加元素

<?php   
    //addElementsxml.php   
    $dom = new DOMDocument("1.0", "UTF-8");  
      
    $dom->load("xml_test.xml");  
      
    $root_class = $dom->getElementsByTagName("class");  
    $i = 0;  
   // for($i = 0;$i < 4; $i++){  
        $root_class_node = $root_class->item($i);  
        $stu_node=$dom->createElement("student");  
        $stu_node->setAttribute("xingbie", "man");  
        $stu_node_name=$dom->createElement("name","name".$i);  
        //设置属性  
        $stu_node_name->setAttribute("hel", "23");  
        $stu_node_age=$dom->createElement("age","21");  
        $stu_node_introduce=$dom->createElement("introduce","1111");  
        $stu_node->appendChild($stu_node_name);  
        $stu_node->appendChild($stu_node_age);  
        $stu_node->appendChild($stu_node_introduce);  
        $root_class_node->appendChild($stu_node);  
   // }  
    $dom->save("xml_test.xml");  
    print $dom->saveXML();  
  
?>

3、遍历元素

    <?php  
        //getNode.php  
        //解析一个文件的步骤  
        //1创建一个对象,表示文档  
        $dom = new DOMDocument("1.0", "UTF-8");  
        //2制定加载那个Xml,解析那个文件  
        $dom->load("xml_test.xml");  
        //3 获取你关新节点  
        $stu_nodes = $dom->getElementsByTagName("student");  
          
        for ($i=0;$i<$stu_nodes->length;$i++){  
            //取出每个学生  
            $stu_node = $stu_nodes->item($i);  
            for($i=0;$i<$stu_node->childNodes->length;$i++){  
                echo $stu_node->childNodes->item($i)->nodeValue;  
                echo "<br/>";  
            }  
        }  
    ?>  

4、删除元素

<?php  
    //解析一个文件的步骤  
    //1创建一个对象,表示文档  
    $dom = new DOMDocument("1.0", "UTF-8");  
    //2制定加载那个Xml,解析那个文件  
    $dom->load("xml_test.xml");  
    //3 获取你关新节点  
    $stu_nodes = $dom->getElementsByTagName("student");  
    $stu_node=$stu_nodes->item($stu_nodes->length -1);  
    $stu_node->parentNode->removeChild($stu_node);  
      
    $dom->save("xml_test.xml");  
 ?>

5、修改元素属性

<?php  
    //1创建一个对象,表示文档  
    $dom = new DOMDocument("1.0", "UTF-8");  
    //2制定加载那个Xml,解析那个文件  
    $dom->load("xml_test.xml");  
      
    //找到这个学生  
    $stus=$dom->getElementsByTagName("age")->item(0);  
    $stus->nodeValue=100;  
      
    $dom->save("xml_test.xml");  
    ?> 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值