PHP5以上提供了一個simpleXML對象來操作XML,把XML的節點轉換成對象和數組去操作。 ...
PHP5以上提供了一個simpleXML對象來操作XML,把XML的節點轉換成對象和數組去操作。
基本思路:將xml字元串轉化成對象及數組。
查詢
<?php //將xml字元串轉化成對象及數組 $xml= file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串 $simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點 //1、查詢 echo "<table width='400' border='1'>"; foreach ($simple->book as $book){ $attr=$book->attributes(); echo"<tr>"; echo "<td>".$book->name."</td>"; echo "<td>".$book->price."</td>"; echo "<td>".$attr['type']."</td>";//獲取節點的屬性 echo "</tr>"; } echo "</table>";
添加
<?php
//將xml字元串轉化成對象及數組 $xml= file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串 $simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點 //添加,simplexml目前還沒有找到格式化的方法。 $book=$simple->addChild('book');//$simple相當於根節點,即代表books,在根下寫book節點 $book->addChild('name','C++'); $book->addChild('price','11'); $book->addAttribute('type','動態語言'); $simple->saveXML('books.xml');//$simple->asXML('books.xml');和$simple->saveXML('books.xml');一樣,都是保存的意思
更新
<?php //將xml字元串轉化成對象及數組 $xml= file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串 $simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點 foreach ($simple->book as $book){ $book->name.='-北京出版社';//相當於$book->name=$book->name.'-北京出版社'; } $simple->saveXML('books.xml');
刪除,從後往前刪
<?php //將xml字元串轉化成對象及數組 $xml= file_get_contents('books.xml');//把books.xml中的內容讀出來,即獲取XML的字元串 $simple=new SimpleXMLElement($xml);//把XML字元串轉成數組,$simple代表根節點 ($i=count($simple->book)-1;$i>=0;$i--){ $currenbook=$simple->book[$i];//當前圖書 $attr=$currenbook->attributes(); if($attr['type']=='動態語言'){ unset($simple->book[$i]);//unset銷毀當前變數 } } $simple->saveXML('books.xml');