XML学习
1.XML有什么作用:1.作为通信标准的数据传送;2,作为配置文件;3.作为小型数据库。
<?xml version="1.0" encoding="utf-8"?> 固定的开头语法
<stu> </stu> 叫做元素或者标签。
可以有属性<stu stunp="a001">
<标签 属性名=“属性值”></标签>
注释:<!--这里是舒适-->
2.CDATA节: <![CDATA[内容]]>,用于包含特殊的内容或者字符!
<介绍><![CDATA[@#%$EWRW]]></介绍>
3.Dtd: document type defination 文档类型定义。
主要用处是约束XML 文件或者其他文件
4.Php 操作XML : php dom;php结合xpath操作xml;SimpleXML
DOM:(document object model)文档-对象-模型。核心思想是捌一个XML文件看成一个对象模型,然后通过对象的方式操作XML文件。
4.1查询:
<html>
<?php
//解析一个xml文件的步骤
//1.创建一个DOMDocument对象,表示文档
$xmldoc=new DOMDocument();
//2.指定加载哪个想xml文件,解析它
$xmldoc->load("classes.xml");
//3.获取你关心的节点
//比如,获取学生节点
$stus=$xmldoc->getElementsByTagName("学生");
//4.遍历(获得值)
for($i=0;$i<$stus->length;$i++){
//取出学生
$stu=$stus->item($i);
//各个信息
echo getNodeVal($stu,"名字")."--".getNodeVal($stu,"年龄")."--". getNodeVal($stu,"介绍");
}
function getNodeVal(&$MyNode,$tagName){
return $MyNode->getElementsByTagName($tagName)->item(0)->nodeValue;
}
?>
</html>
4.2增加
<?php
//第一:增加操作
//该案例演示php对xml文件的增删改操作
//1,还是要创建DOMDocument对象
$xmldoc=new DOMDocument();
//2.加载指定要解析的文件
$xmldoc->load("classes.xml");
//3.演示如何添加一个学生信息
//(1).取出根节点
$root=$xmldoc->getElementsByTagName("班级")->item(0);
//(2).创建新的元素:学生节点
$stu_node=$xmldoc->createElement("学生");
//(3).创建名字节点
$stu_node_name=$xmldoc->createElement("名字");
$stu_node_name->nodeValue="韩顺平";
//把名字节点挂载到学生节点下
$stu_node->appendChild($stu_node_name);
//创建年龄
$stu_node_age=$xmldoc->createElement("年龄");
$stu_node_age->nodeValue="80";
$stu_node->appendChild($stu_node_age);
//创建介绍
$stu_node_show=$xmldoc->createElement("介绍");
$stu_node_show->nodeValue="不刻苦";
$stu_node->appendChild($stu_node_show);
//(4).把学生节点挂载到根节点下面
$root->appendChild($stu_node);
//重新保存xml。会在源文件中产生更新
// $xmldoc->save("classes.xml");
//如果save是新文件名,则会保存到新文件
$xmldoc->save("classes1.xml");
?>
4.3删除
<?php
//第一:删除操作
//1.创建XML DOMDocument对象
$xmldoc=new DOMDocument();
//2,加载指定要解析的XML 文件、
$xmldoc->load("classes.xml");
//3.演示删除一个学生信息
//(1).取出节点
$root=$xmldoc->getElementsByTagName("班级")->item(0);
//删除第三个学生的信息
//找到这个学生
$stus=$xmldoc->getElementsByTagName("学生");
$stu1=$stus->item(2);
$root->removeChild($stu1);
$xmldoc->save("classes.xml");
?>
4.4修改
<?php
//修改操作
//1.创建DOMDocument对象
$xmldoc=new DOMDocument();
//2.加载指定要解析的文件
$xmldoc->load("classes.xml");
//3.找到根节点
$root=$xmldoc->getElementsByTagName("班级")->item(0);
//找到学生节点
$stus=$xmldoc->getElementsByTagName("学生");
$stu1=$stus->item(1);
$stu1_age=$stu1->getElementsByTagName("年龄")->item(0);
$stu1_age->nodeValue+=10;
//更新文件
$xmldoc->save("classes.xml");
?>
5.XPATH 技术 XML Path language 技术,表示节点位置的语言。
<?php
//1.创建DOMDocument对象
$xmldoc=new DOMDocument();
//加载指定要解析的xml文件
$xmldoc->load("test.xml");
//3转成DOMXPath对象
$domXPath=new DOMXPath($xmldoc);
//4,使用xpath技术来定位查找指定结点
$node_list=$domXPath->query("//*");
for($i=0;$i<$node_list->length;$i++){
$node=$node_list->item($i);
echo $node->tagName;
}
?>
6.SimpleXML :以面向对象的方法来操作xml文件
7.