【发布时间】:2013-11-21 14:51:34
【问题描述】:
这里是 XML 新手。
考虑这个简单的 XML 模式:
<products>
<category name="furniture">
<item name="chair" name2="table">
<size>
<small>10</small>
<large>20</large>
</size>
</item>
<item name="cabinet">
<size>
<small>15</small>
<large>30</large>
</size>
</item>
<item name="shelf" name2="box" name3="frame">
<size>
<small>5</small>
<large>10</large>
</size>
</item>
</category>
</products>
注意每个<item> 元素都有不同数量的属性。
我一直在尝试使用 XPATH 和 foreach 循环来回显属性,但没有成功。 当然,我错过了一小段语法。
$dom=simplexml_load_file("file.xml");
foreach ($dom->xpath("/products/category[@name='furniture']/item") as $parse)
echo'<tr><td>'.$parse->attributes().'</td></tr>';
$parse->属性();只给了我元素的第一个属性。 输出如下所示:
<tr><td>chair</td></tr>
<tr><td>cabinet</td></tr>
<tr><td>shelf</td></tr>
我错过了什么?
【问题讨论】:
-
感谢 Amal,嵌套的 foreach 可以工作,但这个 XML 只是更大 XML 文件的一小部分。我不想对文件的其余部分造成循环。如果有意义的话,我正在寻找类似 var_dump 的东西......
-
好的,预期的输出是什么?
-
所有属性,一个接一个(或每行 - 没关系),例如:
chair table cabinet shelf box frame。这基本上是每个<item>元素中的所有属性。