2012-06-05 56 views
0

我一直在尋找這個,但似乎無法找到答案。 我有一個相當複雜的XML文檔,我需要用PHP進行分析。 XML的結構如下所示:在MD數組中解析複雜的XML與PHP

<root> 

<main id="1"> *some data* 

<sub id="1"> *some data* 
    <sub id="2"> *some data* 
     <sub id="3"> *some data* 
      <sub id="4"> *some data* </sub> 
      <sub id="5"> *some data* </sub> 
     </sub> 
    </sub> 
</sub> 

</main> 

</root> 

將此文檔解析爲具有相同結構的多維數組非常重要。

但是有一個問題。沒有辦法知道第一個標籤內有多少個子級,如果有的話。該文檔由另一個系統動態創建,每個標籤的子結構不同。
我嘗試過使用SimpleXMLElement,但它只解析了第一層,即主標籤和第一個標籤之間的數據。

回答

0

嘗試simplexml_load_string()

<?php 
$string = <<<XML 
<?xml version='1.0'?> 
<document> 
<title>Forty What?</title> 
<from>Joe</from> 
<to>Jane</to> 
<body> 
    I know that's the answer -- but what's the question? 
</body> 
</document> 
XML; 

$xml = simplexml_load_string($string); 

print_r($xml); 

無所謂了多少級你還是什麼結構..所以只要它是有效的,你會得到一個對象,你可以工作。

+0

邁克,謝謝你的回答和幫助,但那只是不削減它。試過了,但正如我所說的,輸出無效,即解析器不會從更深的結構中獲取數據。 – omot

+0

<?XML版本= '1.0'?> 數據數據數據 數據數據數據 數據數據數據 數據數據數據 數據數據DA ta omot