我在 XML 文件中设置了以下数组:
<?xml version="1.0"?>
<hats>
<a id="Chicago BULLS" img="bulls.jpeg" cost="$25.00" />
<b id="Toronto RAPTORS" img="raptors.jpeg" cost="$25.00" />
<c id="Orlando MAGIC" img="magic.jpeg" cost="$25.00" />
</hats>
<clothes>
<a id="Chicago BULLS 23" img="bullstee.jpeg" cost="$30.00" />
<b id="Toronto RAPTORS 23" img="torontotee.jpeg" cost="$30.00" />
<c id="Orlando MAGIC 23" img="magictee.jpeg" cost="$30.00" />
</clothes>
我使用了一个函数将 XML 转换为多维数组,如下所示:
Array
(
[hats] => Array
(
[a] => Array
(
)
[a_attr] => Array
(
[id] => Chicago BULLS
[img] => bulls.jpeg
[cost] => $25.00
)
[b] => Array
(
)
[b_attr] => Array
(
[id] => Toronto RAPTORS
[img] => raptors.jpeg
[cost] => $25.00
)
[c] => Array
(
)
[c_attr] => Array
(
[id] => Orlando MAGIC
[img] => magic.jpeg
[cost] => $25.00
)
)
)
正如您所看到的,它只占用了 XML 文件的一半,而且我无法使用数字,因此不得不求助于字母。
最终,我试图让它读取 XML 文件,然后仅输出标签和标签中显示的内容,最终输出更多内容。
如何将 XML 文件干净地解析为数组,以便我可以使用 foreach 循环来显示 XML 文件给定部分中的每一行(仅帽子或仅衣服)。
为什么不直接从 XML 读取simplexml
?
$xml = simplexml_load_string($x); // assume XML in $x
foreach ($xml->children() as $name => $value) {
echo "$name: <br />"; // name of the node, e.g. '<hats>'
foreach ($value->children() as $item) {
echo "$item[id], $item[img], $item[cost]<br />";
}
}
看看这个工作:http://3v4l.org/dpjsg http://3v4l.org/dpjsg
如果您是此 XML 的创建者,请使其更易于解析,如下所示:
<items>
<group name="hats">
<item id="1" name="Chicago BULLS" img="bulls.jpeg" cost="25.00" />
</group>
<group name="clothes">
...
</group>
</items>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)