我需要读取XML数据并在我的HTML页面上显示它们。 我正在使用PHP脚本来准备,解析和显示数据。
这是我的XML文件示例:
<info>
<data>
<aaa>AAAA</aaa>
<bbb>BBBB</bbb>
<ccc>CCC</ccc>
<aaa>RRRR</aaa> (*)
<bbb>PPPP</bbb> (*)
<ccc>ZZZZ</ccc> (*)
</data>
<data>
<aaa>YYYY</aaa>
<bbb>TTTT</bbb>
<ccc>WWWW</ccc>
<aaa>QQQQ</aaa> (*)
<bbb>PPPP</bbb> (*)
<ccc>ZZZZ</ccc> (*)
...
</info>
我能够读取标签“aaa”,“bbb”,“ccc”(对于每个“数据”标签)的第一个值,但不能读取其他值(注意:标签是相同的,值改为)。我不知道如何访问这些值(参见marker(*))
这里尝试迭代XML结构的代码片段:
$myConf = simplexml_load_file('data.xml');
for ($i = 0; $i < sizeof($myConf->data); $i++) {
echo '<td>'.$myConf->data[$i]->aaa.'<BR>'.$myConf->data[$i]->bbb.'</td>'
}
答案 0 :(得分:0)
您必须遍历$data["aaa"]
它是<aaa>
的值数组,请参阅示例:
$xml = <<<XML
<info>
<data>
<aaa>AAAA</aaa>
<bbb>BBBB</bbb>
<ccc>CCC</ccc>
<aaa>RRRR</aaa>
<bbb>PPPP</bbb>
<ccc>ZZZZ</ccc>
</data>
<data>
<aaa>YYYY</aaa>
<bbb>TTTT</bbb>
<ccc>WWWW</ccc>
<aaa>QQQQ</aaa>
<bbb>PPPP</bbb>
<ccc>ZZZZ</ccc>
</data>
</info>
XML;
$xe = new SimpleXMLElement($xml);
foreach ($xe->data as $data) {
foreach ($data as $tag => $value) {
printf("tag: %s => %s\n", $tag, $value);
}
}
输出:
tag: aaa => AAAA
tag: bbb => BBBB
tag: ccc => CCC
tag: aaa => RRRR
tag: bbb => PPPP
tag: ccc => ZZZZ
tag: aaa => YYYY
tag: bbb => TTTT
tag: ccc => WWWW
tag: aaa => QQQQ
tag: bbb => PPPP
tag: ccc => ZZZZ