解析php DOMElement 操作xml 文檔的實(shí)現(xiàn)代碼_PHP教程
推薦:基于PHP常用函數(shù)的用法詳解本篇文章對(duì)PHP中的一些常用函數(shù)的用法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- css的樣式定義,不加點(diǎn)。如:name{color:red;} -->
<?xml-stylesheet type="text/css" href="css.css"?>
<!-- 引入dtd文檔定義文件 (根元素:班級(jí))<!DOCTYPE 班級(jí) SYSTEM "class.dtd" /> -->
<!-- <!DOCTYPE 班級(jí)[
<!ELEMENT 班級(jí) (學(xué)生+)>
<!ELEMENT 學(xué)生 (名字,年齡,介紹)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年齡 (#PCDATA)>
<!ELEMENT 介紹 (#PCDATA)>
] /> -->
<班級(jí)>
<學(xué)生 number="101">
<名字>孫悟空</名字>
<名字>孫行者</名字>
<年齡>123</年齡>
<介紹><![CDATA[&*$%特殊字串^$&]]></介紹>
</學(xué)生>
<學(xué)生 number="10"2">
<名字>白骨精</名字>
<年齡>140</年齡>
<介紹>介紹內(nèi)容</介紹>
</學(xué)生>
</班級(jí)>
*/
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$itemsNodeList = $xmldoc->getElementsbyTagName('學(xué)生');
$itemElement = $itemsNodeList->item(0);//得到第一個(gè)完整的學(xué)生信息節(jié)點(diǎn)
$itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子節(jié)點(diǎn)“名字”,也許有多個(gè)名字
$itemChildNode = $itemChildsNodeList->item(0);//得到第一個(gè)名字節(jié)點(diǎn)
echo $itemChildNode->nodeValue;//輸出節(jié)點(diǎn)值
//封裝成函數(shù)
$nodeArr = array('名字', '年齡', '介紹');
function getNodeVal($xmldoc, $itemsName, $nodeArr){
$items = $xmldoc->getElementsByTagName($itemsName);
for($i=0; $i < $items->length; $i++){
$item = $items->item($i);
foreach($nodeArr as $node){
$data[$i][] = $item->getElementsByTagName($node)->item(0)->nodeValue;
}
}
return $data;
}
$data = getNodeVal($xmldoc, '學(xué)生', $nodeArr);
print_r($data);
//添加節(jié)點(diǎn)
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$items = $xmldoc->getElementsByTagName('班級(jí)')->item(0);//根節(jié)點(diǎn)
$student = $xmldoc->createElement('學(xué)生');//創(chuàng)建一個(gè)新的學(xué)生節(jié)點(diǎn)
$stu_name = $xmldoc->createElement('名字','張三');
$stu_age = $xmldoc->createElement('年齡','15');
$stu_intro = $xmldoc->createElement('介紹','動(dòng)手能力強(qiáng)且成績(jī)穩(wěn)定');
$items->appendChild($student);
$student->appendChild($stu_name);
$student->appendChild($stu_age);
$student->appendChild($stu_intro);
$bytes = $xmldoc->save('datas.xml');
echo ($bytes)? "寫(xiě)入了: $bytes 字節(jié)" : '保存失敗';
//刪除節(jié)點(diǎn)
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$student = $xmldoc->getElementsByTagName('學(xué)生')->item(2);//直接找到要?jiǎng)h除的節(jié)點(diǎn)
$student->parentNode->removeChild($student);//父節(jié)點(diǎn)的刪除方法
$xmldoc->save('datas.xml');
//修改節(jié)點(diǎn)值
$student = $xmldoc->getElementsByTagName('學(xué)生')->item(2);
$student->getElementsByTagName('年齡')->item(0)->nodeValue += 10;
$student->setAttribute('id', '110');
$xmldoc->save('datas.xml');
//應(yīng)用 Xpath 查找節(jié)點(diǎn)
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->load('dat.xml');
$xpath = new DOMXPath($xml);
$nodeList = $xpath->query('/aaa/bbb/ddd/fff');
echo $nodeList->item(0)->nodeValue;
//SimpleXML 類(lèi)操作 xml
/*
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book house="清華出版">
<code>1001</code>
<price>200元</price>
<author>大明</author>
<title>天龍八部</title>
</book>
<book house="北大出版">
<code>1002</code>
<price>321元</price>
<author>張三</author>
<title>笑傲江湖</title>
</book>
<book house="人 民出版">
<code>1004</code>
<price>182元</price>
<author>李四</author>
<title>讀者</title>
</book>
</books>
*/
$xml = simplexml_load_file('books.xml');
$books = $xml->book;
echo $books[1]->title . $books[1]['house'];//直接指向第二本書(shū)
foreach($xml as $item){
echo $item->title,' ',$item['house'],'<br/>';
}
分享:深入PHP數(shù)據(jù)緩存的使用說(shuō)明本篇文章是對(duì)PHP數(shù)據(jù)緩存的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- 如何使用php實(shí)現(xiàn)封裝數(shù)據(jù)庫(kù)的類(lèi)文件
- PHP實(shí)現(xiàn)上傳文件生成小圖加文字的實(shí)例
- 如何用PHP和mysql創(chuàng)建一個(gè)ShoutBox
- php實(shí)現(xiàn)頁(yè)面GZIP壓縮輸出
- php4和php5單態(tài)模式(Singleton Pattern)寫(xiě)法
- 解決PHP無(wú)法訪問(wèn)遠(yuǎn)程mysql的問(wèn)題
- PHP技巧:分析利用PHP制作新聞系統(tǒng)的步驟
- PHP空白頁(yè)面常見(jiàn)原因及解決方法
- apache和php之間協(xié)同工作的配置經(jīng)驗(yàn)分享
- 解析PHP中empty is_null和isset的測(cè)試
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-解析php DOMElement 操作xml 文檔的實(shí)現(xiàn)代碼
。