我无法想出这个:
$xml = simplexml_load_string($result);
这导致以下结果(我可以通过视图> Chrome中的来源看到):
(
[option] => Array
(
[0] => abc1234
[1] => def11234
[2] => ghi1234
[3] => jkl1234
)
[items] => SimpleXMLElement Object
(
[@attributes] => Array
(
[total] => 300
)
[item] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => NAME1
)
[urls] => SimpleXMLElement Object
(
[@attributes] => Array
(
[url] => example.com
[img] => /image1.png
)
)
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => NAME2
)
[urls] => SimpleXMLElement Object
(
[@attributes] => Array
(
[url] => example2.com
[img] => /image2.png
)
)
)
)
)
)
这是包含数千个结果的数组的一部分。我需要的数据位于“名称”,“网址”和“图片”字段中。我搜索了很多,但唯一有效的是提取我甚至不需要的“选项”值。
如何提取这些值?谢谢
答案 0 :(得分:1)
答案归结为语法:
foreach($xml->items->item as $items) {
print $items->attributes()->name.'<br>';
}
我没有意识到'属性'是需要命名的节点的一部分,你需要将其称为'attributes()。生活和学习。
答案 1 :(得分:0)
我知道,循环元素的最简单方法只是一个foreach循环:
foreach($xml as $item)
然后,只需查看每个元素的数据类型。如果它是某种关联数组,则使用键进行访问(如果是SimpleXMLObject),将该元素作为对象属性进行访问。
当然,这可能取决于您的XML嵌套程度,以及您拥有多少。一些XSL也可能为您省去一些麻烦。