上一节,讲了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](http://www.php.net/manual/en/class.domdocument.php)
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP开发环境配置说明
- PHP基础数据类型及运算符介绍
- 走进PHP函数
- 走进位运算
- 走进数组及相关数组函数
- 面向对象的编程(类与对象)
- 面向对象的编程(类成员方法用法)
- 构造方法,析构方法
- static,global用法
- 静态方法
- 面向对象的编程方法
- 接口方法
- 接口VS继承、final、const
- 错误及异常处理机制、错误日志
- HTTP协议深度剖析
- 文件下载
- PHP数据库编程
- 数据库编程(2)
- 超全局变量
- Zend studio 开发环境入门
- 雇员管理系统(1)
- 雇员管理系统(2)
- 会话技术(cookie session)
- 会话技术 session场景使用介绍!
- PHP.in中session和cookie的配置说明
- PHP文件编程
- 报表及绘图技术
- 报表及绘图技术(jpgraph库使用,Linux安装及配置说明)
- XML基本语法及DTD介绍
- XML编程(Dom技术)
- XML编程(Xpath技术,simpleXml技术)基础入门
- 网上支付平台PHP版本
- javascript基础入门