xml轉陣列的方法

2021-06-25 21:44:47 字數 1233 閱讀 7644

**,特別表示感謝,解決了我很大的問題

2011-07-24 01:16:24

|  分類:

php學習|舉報

|字型大小訂閱

前言: 有時因專案需要,在呼叫別人介面時返回xml格式的內容,這時需要處理xml資料並寫入資料庫中,因個人技術有限開始很糾結,後面發現已有高手寫出了怎麼乙個方法,看了很不錯。(收藏了~~)

第一種簡單方法:

/**  

* xml轉陣列方法 *  

* @param xml $xml xml格式字串 

* @param boolean $recursive 是否解釋一串xml入乙個物件中  

* @return array  

*/ function xml2array ( $xml , $recursive = false ) else  

$newarray = array () ;  

foreach ( $tmpdata as $key => $value )else  

}  return $newarray ;

} 解析xml格式如下:

$str=<<<?xml version="1.0" ?>

swwss

ccc

lin44

lin2

45xml;

對如下格式解析不出屬性:

swwss

第二種複雜方法:

function ******xml4array($xmle)

foreach($xmle->children() as $k=>$c)

} if(!$haschildren)

} return $r; }

//附上乙個測試的例子

$str=<<<?xml version="1.0" ?>

swwss

ccc

lin44

lin2

45

xml;

$xml = ******xml_load_string($str);

$arr = ******xml4array($xml);

print_r($arr);

下面是得到的陣列,有些人認為陣列裡有下標[0]、[1]等之類的是多餘的(開始我也怎麼認為),後面經測試這樣做是出現相同的標籤時區分開多個。如測試的例子中就驗證了這一點,因為有時xml要返回多條值,而為了得到這些值它們之間就需要使用下標來區分。

輸出陣列格式:

PHP中 xml轉陣列

simxml xml load file book.xml print r sim 把xml塞進陣列中 arr array function xml2arr sim return arr print r xmlarr xml2arr simxml echo xmlarr book 1 attribu...

PHP xml 轉陣列 陣列轉 xml 操作

path data.xml xml xml load file path foreach xml children as child xml load file 函式把 xml 文件載入物件中。file 必需。規定要使用的 xml 文件。class 可選。規定新物件的 class。options 可...

總結幾個物件轉陣列的方法

目標效果 注 1 object中必須有length屬性,返回的陣列長度取決於length長度 2 key 值必須是數值 2 object.values object 返回陣列的成員順序 注 與第一種不同的是不需要length屬性,返回乙個物件所有可列舉屬性值 注 返回乙個物件的自身可列舉屬性組成的陣...