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
- PHP 自学之路-----XML编程(Dom技术)
- PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
- PHP自学--Dom技术
- PHP自学--XML编程
- 小白自学Android路之 xml文件的DOM解析编程
- PHP自学之路--------PHP数据库编程
- PHP自学之路------PHP文件编程
- PHP自学之路--------数据库编程(2)
- 前端自学之路---DOM
- PHP 自学之路-----XML基本语法及DTD介绍
- PHP自学之路----会话技术(cookie session)
- PHP自学之路----会话技术 session场景使用介绍!
- PHP自学之路---报表及绘图技术
- PHP自学之路-----面向对象的编程方法
- Spring自学之XML式AOP编程
- XML解析之DOM解析技术案例
- 【PHP自学笔记】第八章 PHP数据库编程技术
- PHP自学之路----面向对象的编程(类成员方法用法)
- 《C++ Primer Plus》读书笔记----CHAP6
- 文件下载(java+android)
- Objective-C 协议 简介 +委托的实现
- 和屌丝一起学cocos2dx-环境搭建
- ANDROID开发之SQLite详解
- PHP 自学之路-----XML编程(Dom技术)
- Robots on a grid
- 黑马程序员-Java IO输入与输出-day20
- hdu 1021 Fibonacci Again
- 十年
- 和屌丝一起学cocos2dx-开发基础
- 和屌丝一起学cocos2dx-Hello World
- 和屌丝一起学cocos2dx-自己的Hello World
- 影响所生成内容的计算