php - SimpleXML 循环遍历
问题描述
我像这样通过xml获取产品数据
<?xml version='1.0' encoding='UTF-8'?>
<brands>
<brand>
<name>Spielberger Mühle</name>
<kuerzel>SPI</kuerzel>
<id>e3124594-1d4c-4a72-8c66-37de394fece2</id>
<last_modified>27.04.2021 23:00:03</last_modified>
<logo>
<id>e3124594-1d4c-4a72-8c66-37de394fece2</id>
<name>SPI_Spielberger Mühle_e3124594-1d4c-4a72-8c66-37de394fece2.jpg</name>
<size>273981</size>
<mime_type>image/jpeg</mime_type>
<img_width>1533</img_width>
<img_height>676</img_height>
<last_modified>13.12.2016 12:48:02</last_modified>
</logo>
<url>www.spielberger-muehle.de</url>
<adr_invb_name>Spielberger GmbH</adr_invb_name>
<adr_invb_strasse>Burgermühle</adr_invb_strasse>
<adr_invb_plz>74336</adr_invb_plz>
<adr_invb_ort>Brackenheim</adr_invb_ort>
<adr_invb_land_id>8</adr_invb_land_id>
</brand>
</brands>
<producers>
<producer>
....
并在我的 php 中(缩短为相关部分)
$xml = simplexml_load_file('demo.xml');
foreach ($xml->brands->brand as $key => $value) {
print "Key: $key - Value: $value\n";
}
如果我尝试遍历品牌,则会发生以下情况
Key: brand - Value:
编辑,因为我认为我是冗长的方式。
解决方案
发生这种情况的原因是 SimpleXMLElement 如何处理它的迭代器。get_object_vars
您可以使用该函数遍历元素。
foreach (get_object_vars($xml) as $key => $value) {
print "Key: $key - Value: $value\n";
}
推荐阅读
- angular - 如何仅从材料表垫表中删除选定的行
- angular - 禁用 CDK Stepper 中的一个步骤/阻止返回上一步
- swift - 在 UITextView 中切换 selectedRange 属性
- matplotlib-venn - 有没有办法强制两个圆圈重叠?
- openlayers-5 - 如何设置图层样式
- android-studio - 从android清单导入android studio中的eclipse项目不起作用
- node.js - 如何使用同步请求发送 Zip
- asp.net - 是否可以在列中说明某个值是借方还是贷方?
- c# - 将 Outlook.Items 从 DLL 返回到 MFC,然后迭代 MFC 中的项目
- laravel-5.2 - 如何从 Laravel Illuminate\Support\Collection 获取财产?