我试图遍历一个由simplexml_load_file创建的数组,当我在每个循环中访问我的数组时,我得到了预期的结果,
print_r ($feedobject->Item[0]->attributes())`;
输出:
SimpleXMLElement Object
(
[@attributes] => Array
(
[ID] => 202fnl
[TableID] => newitem
)
)
通过我的每个循环访问时
foreach ($feedobject->Item[$x] as $value) {
print_r ($value->attributes());
$x++;
}
我得到意想不到的结果(进一步进入数组)
SimpleXMLElement Object
(
[@attributes] => Array
(
[TableFieldID] => description
[Value] => Our 2-ounce plastic funnel is the perfect fit for our 8-ounce stainless steel flasks. It works!
)
)
Xml文件看起来像
<Item ID="202fnl" TableID="newitem">
<ItemField TableFieldID="description" Value="Our 2-ounce plastic funnel is the perfect fit for our 8-ounce stainless steel flasks. It works!"/>
为什么会发生这种情况,是否有人有更好的建议来循环遍历此数组的特定元素?
答案 0 :(得分:1)
您对元素选择感到困惑。要获取每个<Item>
,只需使用$feedobject->Item
。
// select each `<Item>`
foreach ($feedobject->Item as $value) {
echo $value->attributes()->ID;
}
当您使用$feedobject->Item[$x] as $value
时,这已经直接指向<Item>
内显示<ItemField>
的元素。