2013-08-30 32 views
0

我想通過XML文件顯示詳細信息作爲回顯。它顯示了一些細節,但不是全部。簡單還是複雜? XML中的問題通過PHP

我已經嘗試了幾種方法來做到這一點,任何幫助將是偉大的!

下面是XML代碼的一部分。

<result> 
    <rowset name="TestGroups" key="groupID" columns="groupName,groupID"> 
    <row groupName="Group 1" groupID="123"> 
     <rowset name="subGroup" key="typeID" columns="subgrName,groupID"> 
     <row subgrName="Sub Group A" groupID="123">...</row> 
     <row subgrName="Sub Group b" groupID="123">...</row> 
     </rowset> 
    </row> 

    <rowset name="TestGroups" key="groupID" columns="groupName,groupID"> 
    <row groupName="Group 2" groupID="456"> 
     <rowset name="subGroup" key="typeID" columns="subgrName,groupID"> 
     <row subgrName="Sub Group C" groupID="456">...</row> 
     <row subgrName="Sub Group D" groupID="456">...</row> 
     </rowset> 
    </row> 
    <result> 

目標是用echo輸出信息。列出組,然後是每個子組。

以下是當前PHP代碼剪斷:

$string = file_get_contents("Calls the XML FILE"); 

    $xml = new SimpleXMLElement($string); 
    $xml_short = $xml->result->rowset->row ; 
    $xml_short2 = $xml->result->rowset->row->rowset->row ; 



    foreach ($xml_short as $row) { 

    echo $row{'groupName'}; 

     foreach ($xml_short2 as $row2) { 


      echo $row{'subgrName'}; 

     } 

    } 

電流輸出:

Group 1 
    Group 2 

,我需要的輸出是:

Group 1 
     Sub Group A 
     Sub Group B 

    Group 2 
     Sub Group C 
     Sub Group D 

我認爲我走在正確的軌道上。這個想法是要返回每個組。循環獲取子組,然後轉到下一組,然後重複,直到完成所有子組。

我嘗試了幾種不同的方法,並且都似乎失敗或無法正常工作。所以任何意見將不勝感激。

回答

0

你有很多row爲數組,你應該設置$xml_short2foreach像下面

foreach ($xml_short as $row) { 

    echo $row{'groupName'}; 

    $xml_short2 = $row->rowset->row; 

    foreach ($xml_short2 as $row2) { 
     echo $row2{'subgrName'}; 
    } 
} 
+0

可悲的是,這讓我有相同的輸出。它仍然不顯示(回顯)subgrName的。 – DevAft

+0

關於我以前的帖子,我忘了修改我爲帖子所做的剪輯。我非常感謝!我曾試圖想出來。再次感謝 – DevAft