2013-06-06 66 views
-3

我想知道如何將XML內容添加到普通數組中,而不添加它作爲對象。例如,我有這樣的XML:數組而不是SimpleXMLElement數組中的對象PHP?

<example> 
    <n1> 
     <1>I am one</1> 
     <2>I am two</2> 
    </n1> 

    <n2> 
     <1>I am one</1> 
     <2>I am two</2> 
    </n2> 

    <n3> 
     <1>I am one</1> 
     <2>I am two</2> 
    </n3> 
</example> 

我的XML添加到一個變量:

$xml = simplexml_load_file('xlmfile'); 

現在,我創建一個空erray:

$exarray = array(); 

現在,當我想把n3加到$ exarray中,我可以這樣做:

array_push($exarray,$xml[2]); 

而現在,當你的print_r($ exarray),你看到這一點:

[0] => SimpleXMLElement Object ([n1] => I am one [n2] => I am two 

所以,這是已被添加到$ exarray一個對象,但可以說你不想對象添加到$ exarray但是一個數組(nr3 = index 2),你怎麼能把nr3作爲數組添加到$ exarray?另外,如果你最終想要$ exarray是這樣的:

[0] => ([n1] => I am one [n2] => I am two) 
[1] => ([n1] => I am one [n2] => I am two) 
[2] => ([n1] => I am one [n2] => I am two) 

Echo $exarray[0][1] to return: I am two 

是可能的嗎?

+1

*致命錯誤:未收到的異常'異常'與消息'字符串不能被解析爲XML'* - 請僅發佈工作示例。此外[處理將simplexml轉換爲數組的許多*現有Q&A中的哪一個不適用於您?](http://stackoverflow.com/search?q=%5Bphp%5D+simplexml+to+array)不適用於您?爲什麼?參考他們中的每一個,你已經嘗試到目前爲止,*概述詳細*哪些部分不適合你,什麼阻礙你改變它們以適應你的需求? – hakre

+0

此外你的問題聽起來有點像http://stackoverflow.com/questions/16936389/undefined-offset-php-array沒有得到答案。這可能是向正確的方向邁進的一步,但另一方面,你也可以嘗試改進你之前的問題,以更具體地使你遇到的具體問題變得更加明顯。這可能會把它變成一個更好的編程問題,並會給你一個更有用的答案。 – hakre

+0

我不確定是否改變一個問題也會使其恢復。 –

回答

2

是有可能 - 你可以做

$array = json_decode(json_encode((array)simplexml_load_string($xml)),1);

從陣列得到的陣列格式的XML,然後獲取數據

0

你可以使用類似

$xml = new SimpleXMLElement($xml); 

foreach ($xml->n1 as $element) { 
     foreach($element as $val) {  
      echo "$val"; 
     } 
    } 

並更改foreach以將值分配給具有計數器的數組。

相關問題