PHP 自學之路—–XML編程(Dom技術)

來源:互聯網
上載者:User
文章目錄
  • 4、刪除元素
上一節,講了Xml檔案基本文法及元素,實體及Dtd約束技術,下面就正式進入PHP的Xml編程使用PHP技術對Xml檔案進行操作
常用的有以下三種技術:
1、PHP dom
2、PHP結合XPath操作Xml
3、Simplexml技術
首先來說明Dom
Dom(Document object model)文檔-對象-模型,核心思想是把一個Xml檔案,看成一個物件模型,然後通過對象的方式來操作Xml檔案。
1、建立一個Xml檔案    在學習過程中發現,自己直接編寫的Xml檔案,在調用Xml函數的時候總是不能被正確的識別,所以先用PHP來建立一個Xml檔案,再進行操作,直接看代碼
<?php    //執行個體化一個DomDocument對象    $dom = new DomDocument('1.0', 'UTF-8');    //如果檔案不存在就建立一個    if (!file_exists("xml_test.xml")){    header("Content-Type: text/plain");    $root = $dom->createElement("class");    $dom->appendChild($root);    $dom->save("xml_test.xml");    } else{    $dom->load("xml_test.xml");      }    print $dom->saveXML();?>
在網頁上開啟,執行會建立個xml_test.xml檔案(這裡有個問題是,根目錄的名字不能使用漢字,具體沒有明白如何去設定?知道的朋友給指點下,非常感謝!)
<?xml version="1.0" encoding="UTF-8"?><class/>
2、增加元素
<?php     //addElementsxml.php     $dom = new DOMDocument("1.0", "UTF-8");        $dom->load("xml_test.xml");        $root_class = $dom->getElementsByTagName("class");    $i = 0;   // for($i = 0;$i < 4; $i++){    $root_class_node = $root_class->item($i);    $stu_node=$dom->createElement("student");    $stu_node->setAttribute("xingbie", "man");    $stu_node_name=$dom->createElement("name","name".$i);    //設定屬性    $stu_node_name->setAttribute("hel", "23");    $stu_node_age=$dom->createElement("age","21");    $stu_node_introduce=$dom->createElement("introduce","1111");    $stu_node->appendChild($stu_node_name);    $stu_node->appendChild($stu_node_age);    $stu_node->appendChild($stu_node_introduce);    $root_class_node->appendChild($stu_node);   // }    $dom->save("xml_test.xml");    print $dom->saveXML();?>
3、遍曆元素
<?php    //getNode.php    //解析一個檔案的步驟    //1建立一個對象,表示文檔    $dom = new DOMDocument("1.0", "UTF-8");    //2制定載入那個Xml,解析那個檔案    $dom->load("xml_test.xml");    //3 擷取你關新節點    $stu_nodes = $dom->getElementsByTagName("student");        for ($i=0;$i<$stu_nodes->length;$i++){    //取出每個學生    $stu_node = $stu_nodes->item($i);    for($i=0;$i<$stu_node->childNodes->length;$i++){        echo $stu_node->childNodes->item($i)->nodeValue;        echo "<br/>";    }    }?>
4、刪除元素
<?php    //解析一個檔案的步驟    //1建立一個對象,表示文檔    $dom = new DOMDocument("1.0", "UTF-8");    //2制定載入那個Xml,解析那個檔案    $dom->load("xml_test.xml");    //3 擷取你關新節點    $stu_nodes = $dom->getElementsByTagName("student");    $stu_node=$stu_nodes->item($stu_nodes->length -1);    $stu_node->parentNode->removeChild($stu_node);        $dom->save("xml_test.xml"); ?>

5、修改元素屬性

<?php    //1建立一個對象,表示文檔    $dom = new DOMDocument("1.0", "UTF-8");    //2制定載入那個Xml,解析那個檔案    $dom->load("xml_test.xml");        //找到這個學生    $stus=$dom->getElementsByTagName("age")->item(0);    $stus->nodeValue=100;        $dom->save("xml_test.xml");    ?>

上面介紹了基本DOM操作,增刪改查,下一節將有具體的執行個體來操作參考資料:http://www.php.net/manual/en/class.domdocument.php

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.