我试图通过XML文件将详细信息显示为回显。它显示了一些细节,但不是全部。
我已经尝试了几种方法来做到这一点,任何帮助都会很棒!
以下是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>
目标是用回声输出信息。列出组后跟每个子组。
以下是当前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 :(得分:0)
您有多个row
作为数组,您应该在$xml_short2
内设置foreach
,如下所示
foreach ($xml_short as $row) {
echo $row{'groupName'};
$xml_short2 = $row->rowset->row;
foreach ($xml_short2 as $row2) {
echo $row2{'subgrName'};
}
}