使用simplexml處理xml文件的Tips
Php中處理xml有多種方式,SimpleXML比較簡潔,對於簡單的應用比較適合。不過SimpleXML不適用於包含namespace的xml,而且要保證xml格式完整(well-formed)。而且SimpleXML讀取xml文件是一次讀入,處理非常大的文件的時候要註意。
在php網站打開PHP Manual -》 Function Reference -》 XML Manipulation
可以看到處理XML的方式還是挺多的。不過大部分的處理使用SimpleXML足夠了。
SimpleXML的使用可以參考php的文檔:
PHP Manual -》 Function Reference -》 XML ManipulationàSimpleXML
http://php.net/manual/en/book.simplexml.php
文檔中對於基本的使用,錯誤處理等都有說明。這裏僅僅介紹一個方便處理的小技巧。
$xml = simplexml_load_file(‘xml_file.xml‘);
讀取xml後,所獲的的$xml的每一個元素都是一個SimpleXMLElement,有些時候處理起來可能不太方便,例如在使用變量access某個節點的時候:
echo $xml->node[$var_string] //$var_string 是一個變化的string
一些操作可能並不方便而且易出錯。至少在我個人的程序中,解引用嵌套多層的時候,會出現取不到值的情況。
對於這種情況,可以把$xml轉換為數組,處理起來更方便,不熟悉SimpleXML的程序員也會感覺更順手:
For me it was easier to use arrays than objects, So, I used this code,
$xml = simplexml_load_file(‘xml_file.xml‘);
$json_string = json_encode($xml);
$result_array = json_decode($json_string, TRUE);
這段代碼來自於php.net的simplexml的User Contributed Notes
參考:
1 php 解析xml 的四種方法(轉)
http://www.cnblogs.com/likwo/archive/2011/08/24/2151793.html
2 SimpleXML 使用詳細例子
http://www.cnblogs.com/likwo/archive/2011/08/24/2151836.html
3 PHP Manual à Function Reference à XML ManipulationàSimpleXML
http://php.net/manual/en/book.simplexml.php
使用simplexml處理xml文件的Tips