程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中的XML DOM(11),xmldom

php中的XML DOM(11),xmldom

編輯:關於PHP編程

php中的XML DOM(11),xmldom


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

結果:

<person>
        <name>huangliu</name>
        <age>18</age>
    </person>

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類的構造方法讀取

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved