XML+PHP学习

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

//第一:增加操作

//该案例演示phpxml文件的增删改操作

//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.

猜你喜欢

转载自blog.csdn.net/qq_27300101/article/details/80782898