一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 解析php DOMElement 操作xml 文檔的實現代碼

解析php DOMElement 操作xml 文檔的實現代碼

2020-03-25 14:00PHP教程網 PHP教程

本篇文章是對在php中DOMElement 操作xml 文檔的實現進行了分析介紹。需要的朋友參考下

 

復制代碼 代碼如下:


/*<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- css的樣式定義,不加點。如:name{color:red;} -->
<?xml-stylesheet type="text/css" href="css.css"?>
<!-- 引入dtd文檔定義文件 (根元素:班級)<!DOCTYPE 班級 SYSTEM "class.dtd" /> -->
<!-- <!DOCTYPE 班級[
<!ELEMENT 班級 (學生+)>
<!ELEMENT 學生 (名字,年齡,介紹)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年齡 (#PCDATA)>
<!ELEMENT 介紹 (#PCDATA)>
] /> -->
<班級>
<學生 number="101">
<名字>孫悟空</名字>
<名字>孫行者</名字>
<年齡>123</年齡>
<介紹><![CDATA[&*$%特殊字串^&#$&]]></介紹>
</學生>

 

<學生 number="10"2">
<名字>白骨精</名字>
<年齡>140</年齡>
<介紹>介紹內容</介紹>
</學生>
</班級>
*/
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');

$itemsNodeList = $xmldoc->getElementsbyTagName('學生');
$itemElement = $itemsNodeList->item(0);//得到第一個完整的學生信息節點
$itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子節點“名字”,也許有多個名字
$itemChildNode = $itemChildsNodeList->item(0);//得到第一個名字節點
echo $itemChildNode->nodeValue;//輸出節點值

//封裝成函數
$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, '學生', $nodeArr);
print_r($data);

 

復制代碼 代碼如下:


//添加節點
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$items = $xmldoc->getElementsByTagName('班級')->item(0);//根節點
$student =  $xmldoc->createElement('學生');//創建一個新的學生節點
$stu_name = $xmldoc->createElement('名字','張三');
$stu_age = $xmldoc->createElement('年齡','15');
$stu_intro = $xmldoc->createElement('介紹','動手能力強且成績穩定');
$items->appendChild($student);
$student->appendChild($stu_name);
$student->appendChild($stu_age);
$student->appendChild($stu_intro);
$bytes = $xmldoc->save('datas.xml');
echo ($bytes)? "寫入了: $bytes 字節" : '保存失敗';

 

//刪除節點
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$student = $xmldoc->getElementsByTagName('學生')->item(2);//直接找到要刪除的節點
$student->parentNode->removeChild($student);//父節點的刪除方法
$xmldoc->save('datas.xml');

//修改節點值
$student = $xmldoc->getElementsByTagName('學生')->item(2);
$student->getElementsByTagName('年齡')->item(0)->nodeValue += 10;
$student->setAttribute('id', '110');
$xmldoc->save('datas.xml');

//應用 Xpath 查找節點

$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 類操作 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'];//直接指向第二本書
foreach($xml as $item){
    echo $item->title,' ',$item['house'],'<br/>';
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色婷婷天天综合在线 | 欧美成人aa久久狼窝动画 | 99视频有精品视频免费观看 | 欧美日韩亚洲高清不卡一区二区三区 | 精品一区二区三区在线视频观看 | 亚洲国产日韩欧美在线vip1区 | 亚洲男人的天堂成人 | 日本欧美强乱视频在线 | yellow高清视频日本动漫 | 日本漫画无翼乌 | 欧美人与禽杂交大片 | 国产综合亚洲欧美日韩一区二区 | 欧美又大又粗又爽视频 | 天天做天天爰夜夜爽 | 99r视频 | 欧美亚洲国产另类在线观看 | 91高清国产经典在线观看 | 亚洲欧美日韩另类精品一区二区三区 | 深夜日韩| 亚瑟天堂久久一区二区影院 | ai换脸杨颖啪啪免费网站 | 国产亚洲精品精品国产亚洲综合 | 色综合久久综合网欧美综合网 | 亚洲欧美在线免费 | 91久| 日韩一区二区三 | 免费观看俄罗斯特黄特色 | 99久久免费国产特黄 | 成人影院免费在线观看 | 午夜精品久久久久久 | 91久久99热青草国产 | www久久com | www.伊人| 青青操在线播放 | 国产精品视频一区二区三区 | 草莓视频在线观看免费 | 羞羞视频动漫 | 美国女孩毛片 | 无码人妻视频又大又粗欧美 | 日本不卡一区二区三区在线观看 | 亚洲黄网站wwwwww |