php5中讀寫xml文檔是非常方便的,我們可以使用php SimpleXML對話來幫我們快速解析與生成xml格式的文件.
創(chuàng)建一個SimpleXML對象有三種方法:
使用new關(guān)鍵字創(chuàng)建,代碼如下:
- $xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item>
- <item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";
- $rss=new SimpleXMLElement($xml);
使用simplexml_load_string()創(chuàng)建,代碼如下:
- $xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item>
- <item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";//開源代碼Vevb.com
- $rss=simplexml_load_string($xml);
最常用的方法,使用simplexml_load_file()URL創(chuàng)建,代碼如下:
$rss=simplexml_load_file("rss.xml");或
$rss=simplexml_load_file("/rss.xml");//遠程文檔
先看個例子,代碼如下:
- <?php
- $xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item><item><id>2</id><name>bbb</name><age>26</age></item></personinfo>";
- $rss=new SimpleXMLElement($xml);
- foreach($rss->item as $v){
- echo $v->name,'<br />';
- }
- echo $rss->item[1]->age;//讀取數(shù)據(jù)
- echo '<hr>';
- $rss->item[1]->name='ccc';//修改數(shù)據(jù)
- foreach($rss->item as $v){
- echo $v->name,' <br /> ';//aaa <br /> ccc <br />
- }
- echo '<hr>';
- unset($rss->item[1]);//輸出數(shù)據(jù)
- foreach($rss->item as $k=>$v){
- echo $v->name,' <br /> ';//aaa <br />
- }//開源代碼Vevb.com
- echo '<hr>';
- //添加數(shù)據(jù)
- $item=$rss->addChild('item');
- $item->addChild('id','3');
- $item->addChild('name','ccc_new');
- $item->addChild('age','40');
- foreach($rss->item as $k=>$v){
- echo $v->name,' <br /> ';//aaa <br /> ccc_new <br />
- }
- $rss->asXML('personinfo.xml');
- ?>
xml數(shù)據(jù)的讀取:可以直接通過元素的名稱來訪問特定的元素,文檔中的所有元素都被看成是該對象的屬性,實例代碼如下:
- foreach($rss->item as $v){
- echo $v->name,' <br /> ';//aaa <br /> bbb <br />
- }
- echo $rss->item[1]->age;//26
xml數(shù)據(jù)修改,可以直接利用對象屬性賦值的方法來直接編輯一個元素的內(nèi)容,實例代碼如下:
- $rss->item[1]->name='ccc';//修改數(shù)據(jù)
- foreach($rss->item as $v){
- echo $v->name,' <br /> ';//aaa <br /> ccc <br />
- }
可以用php內(nèi)容函數(shù)unset來將一個元素從樹中刪除,實例代碼如下:
- unset($rss->item[1]);
- foreach($rss->item as $v){
- echo $v->name,' <br /> ';//a m.survivalescaperooms.com aa <br />
- }
xml添加元素數(shù)據(jù),可通過對象的addChild方法來實現(xiàn),實例代碼如下:
- $item=$rss->addChild('item');
- $item->addChild('id','3');
- $item->addChild('name','ccc_new');
- $item->addChild('age','40');
- foreach($rss->item as $k=>$v){
- echo $v->name,' <br /> ';//aaa <br /> ccc_new <br />
- }
xml數(shù)據(jù)的存儲:使用對象的asXML()方法
$rss->asXML('personinfo.xml');//將xml數(shù)據(jù)存儲到personinfo.xml文件中.
新聞熱點
疑難解答