php中的XML DOM(11)

來源:互聯網
上載者:User
7.建立節點

在dom操作中,增刪改操作必須要找父節點

1、DOMElement DOMDocument::createElement ( string $name [, string $value ] )

建立節點 ,返回的是一個節點對象

string $name :節點的名 (元素名)

[, string $value ] :節點的值

2、DOMNode DOMNode::appendChild ( DOMNode $newnode )

追加子節點

DOMNode $newnode:子節點

3、int DOMDocument::save ( string $filename )

將dom中的資料儲存到指定的檔案中

4、documentElement屬性,表示dom模型中的根節點

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 建立節點僅僅是表示在記憶體中建立出這個節點對象,但這個對象和我們之前的// dom模型沒有任何聯絡    $person = $dom->createElement ( 'person' );    $name = $dom->createElement ( 'name', 'huangliu' );    $age = $dom->createElement ( 'age', '18' );// 將name和age做為子節點追加至person節點    $person->appendChild ( $name );    $person->appendChild ( $age );// $dom->getElementsByTagName('persons')->item(0)->appendChild($newnode)// 將person做了子節點追加至根節點    $dom->documentElement->appendChild ( $person );// 將dom中的所有資料重新儲存到demo01.xml檔案中    $dom->save ( 'demo01.xml' );

結果:

        huangliu        18    

8、 刪除節點

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

DOMNode $oldnode:要被刪除的節點對象

樣本:把以下藍色部分給刪除掉

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 首先找到要刪除的節點對象    $person = $dom->getElementsByTagName ( 'person' )->item ( 1 );// 將節點刪除    $dom->documentElement->removeChild ( $person );// 重新儲存檔案    $dom->save ( 'demo01.xml' );

9、修改節點

DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

DOMNode $newnode :新節點

DOMNode $oldnode :原節點

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 找到要被替換掉的節點    $oldNode = $dom->getElementsByTagName ( 'person' )->item ( 2 );// 建立出新的節點    $person = $dom->createElement ( 'person' );    $name = $dom->createElement ( 'name', 'songjiang' );    $age = $dom->createElement ( 'age', 100 );    $person->appendChild ( $name );    $person->appendChild ( $age );// 用新節點替換原節點    $dom->documentElement->replaceChild ( $person, $oldNode );// 儲存檔案    $dom->save ( 'demo01.xml' );

10、 儲存

? string DOMDocument::saveXML

將dom中的資料儲存至一個字串變數中

? int DOMDocument::save ( string $filename )

將dom中的資料儲存到指定的檔案中

11、關於屬性的增刪改

1、DOMAttr DOMElement::setAttribute( string $name , string $value )

添加屬性

string $name :屬性名稱

string $value :屬性值

為person添加id='s102'這個屬性

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 為第二個人添加id屬性// 找到第二個人    $person = $dom->getElementsByTagName ( 'person' )->item ( 1 );// 添加id屬性    $person->setAttribute ( 'id', 's102' );// 儲存檔案    $dom->save ( 'demo01.xml' );

2、 DOMAttr DOMElement::setAttribute( string $name , string $value )

修改屬性

string $name :屬性名稱

string $value :屬性值

如果一個節點沒有此屬性,表示添加屬性 (注意與上面的區別)

如果一個節點已經存在這個屬性,表示修改屬性

3、bool DOMElement::removeAttribute ( string $name )

刪除屬性(不是刪除節點)

$name:要被刪除的屬性

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 刪除第2個人的id屬性// 找到第二個人    $person = $dom->getElementsByTagName ( 'person' )->item ( 1 );// 刪除id屬性    $person->removeAttribute('id');// 儲存檔案    $dom->save ( 'demo01.xml' );

4、擷取屬性

string DOMElement::getAttribute ( string $name )

string $name:屬性名稱

php    header ( 'Content-Type:text/html;charset=gb2312' );    $dom = new DOMDocument ( '1.0', 'utf-8' );    $dom->load ( 'demo01.xml' );// 查詢第1個人的id屬性// 找到第1個人    $person = $dom->getElementsByTagName ( 'person' )->item ( 0 );// 查詢id屬性    echo $person->getAttribute('id');

12 SimpleXML

PHP DOM:增刪改

SimpleXML:查詢

一、 讀取xml

1、 simpleXMLElement simplexml_load_file ( string $filename)

從某個xml檔案中讀取資料

string $filename:xml檔案名稱

2、SimpleXMLElement::__construct ( string data)

從某個字串中讀取資料

String data:xml格式的字串

如果資料儲存到檔案中,使用simplexml_load_file讀取

如果資料儲存到字串中,使用SimpleXMLElement類的構造方法讀取

以上就介紹了php中的XML DOM(11),包括了方面的內容,希望對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.