PHP 自学之路-----XML编程(Dom技术)

来源:互联网 发布:淘宝买家秀采集器 编辑:程序博客网 时间:2024/05/17 03:28

上一节,讲了Xml文件基本语法及元素,实体及Dtd约束技术,下面就正式进入PHP的Xml编程

使用PHP技术对Xml文件进行操作
常用的有以下三种技术:
1、PHP dom
2、PHP结合XPath操作Xml
3、Simplexml技术
首先来说明Dom
Dom(Document object model)文档-对象-模型,核心思想是把一个Xml文件,看成一个对象模型,然后通过对象的方式来操作Xml文件。

1、创建一个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();?>

在网页上打开,执行会创建个xml_test.xml文件(这里有个问题是,根目录的名字不能使用汉字,具体没有明白如何去设置?知道的朋友给指点下,非常感谢!)

<?xml version="1.0" encoding="UTF-8"?><class/>

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");    ?>

上面介绍了基本DOM操作,增删改查,下一节将有具体的实例来操作


参考资料:
http://www.php.net/manual/en/class.domdocument.php


原创粉丝点击