婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用php操作xml教程

使用php操作xml教程

熱門標簽:手機外呼系統(tǒng)什么原理 溫州外呼系統(tǒng)招商 合肥ai電銷機器人費用 天津電銷外呼系統(tǒng)違法嗎 滄州電銷外呼系統(tǒng)價格 銀行信貸電話機器人 400電話個人能不能辦理 凱立德地鐵站地圖標注 上海400客服電話怎么申請

php操作xml

最近計劃寫個人的小網(wǎng)站,一系列原因選擇了用php來寫,最大的問題就是雖然php很流行,但我從來沒有接觸過php,看了一個多星期的基本語法后做些小練習熱熱身,但是期間是各種問題啊,主要是對php不熟悉,遇到一些總結(jié)一些吧。

數(shù)據(jù)

?xml version="1.0"?>
books>
    book name="JavaScript: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
        author>David Flanagan/author>
    /book>
    book name="PHP anf MySQL Web Development" publisher="Perason Education">
        author>Luke Welling/author>
        author>Laura Thomson/author>
    /book>
    book name="HTTP: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
        author>David Courley/author>
        author>Brian Totty/author>
    /book>
/books>

XML幾個基本概念

節(jié)點:節(jié)點也就是很多程序語言中處理XML時的Node,節(jié)點是一個比較寬泛的概念,在XML中元素,屬性,名字空間,注釋,文本內(nèi)容,處理指令,還有整個文檔都屬于節(jié)點,也就是說XML文檔中每個獨立的一小部分都是節(jié)點,是,也是,name=”XXXX”也是,標簽是,甚至作者的名字David Flanagan都是一個文本節(jié)點。

元素:很多程序語言都有對XML處理,節(jié)點是一個很寬泛的概念,因為要統(tǒng)一API,對節(jié)點不會有過多方法,而元素也就是Element是節(jié)點的一個子集,簡單講就是這樣的標簽才算,一般會有很多針對元素的操作方法。

屬性:這個比較好理解,在>里面的類似XX=”O(jiān)O”等東西都是屬性節(jié)點

轉(zhuǎn)義字符:和HTML等類似,xml也有語言占用的符號,想使用的這些特殊字符的時候需要轉(zhuǎn)義

lt;

>

gt;

apos;

quot;

DOMDocument對象

我使用的是DOMDocument對象來操作xml,感覺用起來比simpleXml科學一些,當然第一天使用php,純屬個人感覺。DOMDocument有幾個常用的屬性和方法。

屬性 作用
attributes 節(jié)點屬性集合
parentNode 節(jié)點父節(jié)點
documentElement 文檔根節(jié)點
nodeName 節(jié)點的名字
nodeType 節(jié)點類型
nodeValue 節(jié)點值
Text 節(jié)點及其子節(jié)點轉(zhuǎn)換為文字
方法 作用
appendChild 為節(jié)點添加子節(jié)點
createAttribute 創(chuàng)建屬性節(jié)點
createElement 創(chuàng)建元素
getElementsByTagName 通過節(jié)點名獲取節(jié)點集合
hasChildNodes 判斷節(jié)點是否有子節(jié)點
insertBefore 在節(jié)點
Load 通過文檔路徑加載xml
loadXML 加載zml字符串
removeChild 刪除子節(jié)點
removeAttribute 刪除屬性節(jié)點
save 保存文檔

加載xml

$path=$_SERVER["DOCUMENT_ROOT"].'/books.xml';
    $books=new DOMDocument();
    $books->load($path);

讀取/遍歷節(jié)點與屬性

$bookElements=$books->getElementsByTagName('book');

    foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            echo strtoupper($attr->nodeName).' —— '.$attr->nodeValue.'br/>';
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName('author') as $author) {
            echo $author->nodeValue.' ';
        }
        echo 'br/>br/>';
    }

當然對于很多屬性,只想讀一個,可以通過item(index)方法按索引讀取

echo $book->attributes->item(1)->nodeValue;

還可以通過強大的xpath查詢

$xpath = new domxpath($books);
$bookElements=$xpath->query("/books/book");

修改屬性/節(jié)點

foreach($bookElements as $book){
        foreach ($book->attributes as $attr) {
            #$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
            $attr->nodeValue=strtoupper($attr->nodeValue);
        }
        echo "AUTHOR: ";
        foreach ($book->getElementsByTagName('author') as $author) {
            $author->nodeValue=strtoupper($author->nodeValue);
        }

    }
    $books->save($path);

對屬性修改可以直接訪問其nodeValue改動,也可以使用setAttribute方法,改動完了別忘了使用save保存。

$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);

添加元素/屬性

$newBook=$books->createElement('book'); #創(chuàng)建新元素
    $newBook->setAttribute('name','PHP Objects, Patterns, and Practice');#創(chuàng)建新屬性,方法一

    $publisher=$books->createAttribute('publisher');#創(chuàng)建新屬性,方法二
    $publisher->nodeValue='Apress L.P';
    $newBook->appendChild($publisher); #把屬性添加到元素上

    $author=$books->createElement('author');#創(chuàng)建子元素
    $author->nodeValue='Matt Zandstra';
    $newBook->appendChild($author);#把子元素添加到父元素上

    $books->documentElement->appendChild($newBook);#添加整個節(jié)點
    $books->save($path);

刪除屬性/節(jié)點

$first=$bookElements->item(0);
    $first->removeAttribute('publisher');

    $second=$bookElements->item(1);
    $second->parentNode->removeChild($second);

    $books->save($path);

到此這篇關(guān)于使用php操作xml教程的文章就介紹到這了,更多相關(guān)php操作xml內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • linux下php安裝xml擴展的詳細步驟
  • php 使用expat方式解析xml文件操作示例
  • php實現(xiàn)的數(shù)組轉(zhuǎn)xml案例分析
  • PHP讀取XML文件的方法實例總結(jié)【DOMDocument及simplexml方法】
  • PHP創(chuàng)建XML的方法示例【基于DOMDocument類及SimpleXMLElement類】

標簽:赤峰 溫州 怒江 金華 酒泉 洛陽 七臺河 白城

巨人網(wǎng)絡通訊聲明:本文標題《使用php操作xml教程》,本文關(guān)鍵詞  使用,php,操作,xml,教程,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用php操作xml教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用php操作xml教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 濉溪县| 清镇市| 水富县| 宜川县| 美姑县| 松潘县| 杭锦旗| 黄陵县| 来宾市| 阿巴嘎旗| 玉屏| 佛冈县| 梅河口市| 中西区| 金川县| 深泽县| 水城县| 灵川县| 松阳县| 莒南县| 繁昌县| 海淀区| 吉安市| 达拉特旗| 邢台县| 礼泉县| 神池县| 德庆县| 红河县| 宜都市| 昌吉市| 绥江县| 新宁县| 陈巴尔虎旗| 宁德市| 兴化市| 锦屏县| 都匀市| 福贡县| 伊吾县| 阿巴嘎旗|