国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

DOM基礎(chǔ)及php讀取xml內(nèi)容操作的方法

2024-05-04 21:54:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 DOM(Document Object Model):文檔對(duì)象模型。核心思想是:把 xml文件看作是一個(gè)對(duì)象模型,然后通過(guò)對(duì)象的方式來(lái)操作 xml 文件。

php對(duì)xml文檔進(jìn)行增刪改查(curd)操作,具體分析如下:

xml文檔:class.xml

代碼如下:<?xml version="1.0" encoding="utf-8"?>
<class>
<student info="美女">
<name>小喬</name>
<sex>女</sex>
<age>20</age>
</student>
<student>
<name>周瑜</name>
<sex>男</sex>
<age>25</age>
</student>
</class>


class.xml 對(duì)應(yīng)的 DOM 樹(shù)結(jié)構(gòu)圖

 

DOM基礎(chǔ)及php讀取xml內(nèi)容操作的方法 武林網(wǎng)

php文件(對(duì)xml文檔操作)

查詢操作案例:

代碼如下:<?php
//1、創(chuàng)建一個(gè)DOMDocument對(duì)象。該對(duì)象就表示 xml文件
$xmldoc = new DOMDocument();
//2、加載xml文件(指定要解析哪個(gè)xml文件,此時(shí)dom樹(shù)節(jié)點(diǎn)就會(huì)加載到內(nèi)存中)
$xmldoc->load("class.xml");
//3、目標(biāo):獲取第一個(gè)學(xué)生的名字
//3.1 第一步,讀取所有的學(xué)生
$students = $xmldoc->getElementsByTagName("student");//方法getElementsByTagName:根據(jù)所給的節(jié)點(diǎn)名字(這里是student)查找 相應(yīng)的節(jié)點(diǎn),返回 DOMNodeList類(lèi)型的對(duì)象,相當(dāng)于取出了所有的學(xué)生。可以用var_dump($students)查看,并根據(jù)返回值查找手冊(cè),看其下面的屬性與方法。
echo "共有 ".$students->length."個(gè)學(xué)生<br />";

 

//3.2 讀取第一個(gè)學(xué)生
$stu1 = $students->item(0);//讀取到第一個(gè)學(xué)生。返回值為DOMElement對(duì)象。直接 echo $stu1->nodeValue;則把name,sex,age都輸出。
//3.3 取出第一個(gè)學(xué)生的名字
$stu1_name = $stu1->getElementsByTagName("name");
//3.4 讀取到名字
echo $stu1_name->item(0)->nodeValue;
?>

 

注意點(diǎn):

(1)編碼問(wèn)題;
(2)這里只是基礎(chǔ)演示,比較麻煩,后面用到循環(huán)和函數(shù)來(lái)操作;
(3)用var_dump(),查看變量的返回值是什么,再根據(jù)返回值到手冊(cè)中查找該返回值下的屬性與方法。
(4)整個(gè)順序下來(lái),getElementByTagName()并不需要一層一層的讀,事實(shí)上可以直接讀取到節(jié)點(diǎn)name的,而不需要先讀取student(當(dāng)然,如果同一個(gè)student下,有多個(gè)name,就會(huì)出問(wèn)題了,這里就需要學(xué)習(xí)新的知識(shí)點(diǎn)xpath)。

所以上面這代碼可以簡(jiǎn)單改為:

代碼如下:<?php
//1、創(chuàng)建一個(gè)DOMDocument對(duì)象。該對(duì)象就表示 xml文件
$xmldoc = new DOMDocument();
//2、加載xml文件(指定要解析哪個(gè)xml文件,此時(shí)dom樹(shù)節(jié)點(diǎn)就會(huì)加載到內(nèi)存中)
$xmldoc->load("class.xml");
//3、目標(biāo):獲取第一個(gè)學(xué)生的名字
$stu = $xmldoc->getElementsByTagName("name");//直接找到節(jié)點(diǎn)name
$stu1 = $stu->item(0);// item(1)時(shí),可以取到周瑜
echo $stu1->nodeValue;
?>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高邮市| 三河市| 屏山县| 大邑县| 徐水县| 瑞金市| 北京市| 阳原县| 荔波县| 连州市| 涪陵区| 康马县| 湖口县| 长沙县| 固安县| 平罗县| 长葛市| 大石桥市| 县级市| 巴中市| 康马县| 吴江市| 牙克石市| 商洛市| 建阳市| 白银市| 湘潭市| 那坡县| 天镇县| 楚雄市| 孟连| 邵阳县| 丹巴县| 墨玉县| 潼南县| 安仁县| 安西县| 远安县| 岚皋县| 深水埗区| 门源|