我正试图通过XML文件将详细信息显示为echo。它显示了一些细节,但不是全部。
我已经尝试了几种方法来做到这一点,任何帮助都会很棒!
下面是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
我认为我走在了正确的轨道上。当时的想法是让每组人都回来。循环以获得子组,然后转到下一个组并重复,直到完成所有操作。
我尝试了几种不同的方法,但似乎都失败了或无法正常工作。因此,任何建议都将不胜感激。
您有许多row
作为数组,您应该像下面的一样在foreach
中设置$xml_short2
foreach ($xml_short as $row) {
echo $row{'groupName'};
$xml_short2 = $row->rowset->row;
foreach ($xml_short2 as $row2) {
echo $row2{'subgrName'};
}
}