91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用php操作xml

發布時間:2022-03-25 10:38:26 來源:億速云 閱讀:149 作者:iii 欄目:大數據

本文小編為大家詳細介紹“怎么使用php操作xml”,內容詳細,步驟清晰,細節處理妥當,希望這篇“怎么使用php操作xml”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

php操作xml

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

數據

<?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幾個基本概念

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

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

屬性:這個比較好理解,在<>里面的類似XX=”OO”等東西都是屬性節點

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

<

&lt;

>

&gt;

&

&amp;

&apos;

&quot;

DOMDocument對象

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

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

加載xml

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

讀取/遍歷節點與屬性

$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/>";
    }

怎么使用php操作xml

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

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

還可以通過強大的xpath查詢

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

修改屬性/節點

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);

怎么使用php操作xml

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

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

添加元素/屬性

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

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

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

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

刪除屬性/節點

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

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

    $books->save($path);

怎么使用php操作xml

讀到這里,這篇“怎么使用php操作xml”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石城县| 盘锦市| 左贡县| 汾西县| 潼南县| 米脂县| 云安县| 师宗县| 得荣县| 沁水县| 阳信县| 出国| 嘉祥县| 武冈市| 青铜峡市| 高要市| 呼图壁县| 皋兰县| 肥西县| 墨竹工卡县| 临清市| 合阳县| 江孜县| 蒲江县| 望都县| 高雄市| 宁河县| 卢湾区| 舞阳县| 都匀市| 钦州市| 道孚县| 济源市| 大厂| 南昌县| 灯塔市| 华亭县| 纳雍县| 绥滨县| 彩票| 曲阜市|