所以我在这里跟着几个问题尝试让它发挥作用......但我似乎无法破解它。基本上我正在尝试做的是遍历XML文件并返回key =>该文件中元素的值对。对于更多上下文,我试图将项目的ASIN(亚马逊API)存储为密钥,并将其图像URL存储为数组中的值。
这是XML文件的结构,以防这些文件可以帮助某人确定我的代码存在缺陷:
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<Keywords>biology</Keywords>
<ResponseGroup>Images</ResponseGroup>
<SearchIndex>Books</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalResults>280951</TotalResults>
<TotalPages>28096</TotalPages>
<MoreSearchResultsUrl>
http://www.amazon.com/gp/redirect.html?camp=2025&creative=386001&location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fsearch%3Fkeywords%3Dbiology%26url%3Dsearch-alias%253Dstripbooks&linkCode=xm2&tag=comparcom035-20&SubscriptionId=AKIAIQ7UEDX4CFRSBDXA
</MoreSearchResultsUrl>
<Item>
<ASIN>0321558235</ASIN>
<SmallImage>
<URL>
http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg
</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">62</Width>
</SmallImage>
这是我正在使用的代码:
$xml = simplexml_load_file($SignedRequest);
$image = simplexml_load_file($getimage);
foreach ($image->Items->Item->ASIN as $key => $value) {
$array[$key] = $image->Items->Item->SmallImage->URL;
}
print_r($array);
我的输出如下:
Array ( [ASIN] => SimpleXMLElement Object ( [0] => http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg ) )
我觉得我很接近.....但是有谁可以指出我在这里做错了什么?我似乎无法让我的循环正确分配键和值而不会抛出某种错误。
答案 0 :(得分:1)
你很接近,你只需要将值转换为字符串:
$array[$key] = (string) $image->Items->Item->SmallImage->URL;
答案 1 :(得分:1)
试试这个:
$item = $image->Items->Item;
$array[(string)$item->ASIN] = (string)$item->SmallImage->URL;
<强>输出:强>
Array
(
[0321558235] => http://ecx.images-amazon.com/images/I/41UWC4kbxGL._SL75_.jpg
)