在php5中讀寫xml文檔是非常方便的,可以直接使用php的SimpleXML方法來快速解析與生成xml格式的文件,下面舉例說明:
創建一個SimpleXML對象有三種方法:
1.使用new關鍵字創建
復制代碼 代碼如下:
$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);
2.使用simplexml_load_string()創建
復制代碼 代碼如下:
$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=simplexml_load_string($xml);
3.使用simplexml_load_file()從一個URL創建
復制代碼 代碼如下:
$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;//讀取數據
echo '<hr>';
$rss->item[1]->name='ccc';//修改數據
foreach($rss->item as $v){
echo $v->name,' <br /> ';//aaa <br /> ccc <br />
}
echo '<hr>';
unset($rss->item[1]);//輸出數據
foreach($rss->item as $k=>$v){
echo $v->name,' <br /> ';//aaa <br />
}
echo '<hr>';
//添加數據
$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數據的讀取
//可以直接通過元素的名稱來訪問特定的元素。文檔中的所有元素都被看成是該對象的屬性。
foreach($rss->item as $v){
echo $v->name,' <br /> ';//aaa <br /> bbb <br />
}
echo $rss->item[1]->age;//26
//xml數據修改,可以直接利用對象屬性賦值的方法來直接編輯一個元素的內容
$rss->item[1]->name='ccc';//修改數據
foreach($rss->item as $v){
echo $v->name,' <br /> ';//aaa <br /> ccc <br />
}
//可以用php內容函數unset來將一個元素從樹中刪除
unset($rss->item[1]);
foreach($rss->item as $v){
echo $v->name,' <br /> ';//a www.jb51.net aa <br />
}
//xml添加元素數據,可通過對象的addChild方法來實現
$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數據的存儲
//使用對象的asXML()方法
$rss->asXML('personinfo.xml');//將xml數據存儲到personinfo.xml文件中