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
//第一:增加操作
//該案例演示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.
?
總結
- 上一篇: 做姜母鸭用的鱼眼是什么?
- 下一篇: 在南京尝试最正宗的金陵双臭煲应该去哪些地