目前我有以下代码但由于某种原因它只输出一个项目
基本上我试图做的是说foreach mainPropertyUrl
创建一个列表foreach列表但由于某种原因我只回来一个ListingId
主要Feed位于 - http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml
PHP:
$mainXmlUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml");
$listing = $mainXmlUrl->List->Listing;
$mainPropertyUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Listings/$listing->ListingId.xml");
在我的HTML中,我尝试过一般的foreach循环,但没有使用$url
变量,因为我不确定如何使用适用于一个列表的代码来实现它。
我还试图创建一个列表ID数组,但它没有显示数据:
$ListingArray = array();
foreach ($listing[0] as $id) {
$IDNum = $id->ListingId;
$ListingArray[] = $IDNum;
}
var_dump($ListingArray);
HTML Snippit:
<?php foreach ($mainPropertyUrl as $url): ?>
<div class="listingContainer">
<h2><?php echo $tradeMePropertyAddressFull;?></h2>
<div class="listingAttributes">
<div class="col0">
<span class="name"><?php echo $mainPropertyDetails[0]->Attribute[0]->DisplayName;?>:</span>
<span class="value"><?php echo $tradeMePropertyBathrooms[0];?></span>
答案 0 :(得分:0)
尝试:
$mainPropertyUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Listings/{$listing->ListingId}.xml");
您需要将{}
放在对象访问语法周围。
更新:
$listing
是一个数组,所以你的循环应该是:
foreach($listing as $l) {
$ListingArray[] = "$l->ListingId";
}
答案 1 :(得分:0)
您的$ mainXmlUrl以简短格式包含多个列表的列表。对于每个列表,您需要使用新的ListingId调用$ mainPropertyUrl以获取该特定列表的详细信息。
您可以遍历$ mainXmlUrl-&gt; List-&gt;列表,并且在每个节点上,您将能够将ListingId作为属性进行检索。
$mainXmlUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml");
$listingIds = array();
foreach ($mainXmlUrl->List->Listing as $listing) {
// $listing->ListingId is actually an XML object that has a __toString method.
// Hence the type casting below.
$listingIds[] = (string) $listing->ListingId;
}
print_r($listingIds);
要检索有关每个商家信息的详细信息,您需要在每个商家信息ID上调用mainPropertyUrl。
$mainXmlUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml");
foreach ($mainXmlUrl->List->Listing as $listing) {
$mainPropertyUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Listings/{$listing->ListingId}.xml");
// $mainPropertyUrl is an XML object containing the detailed information on one listing
print_r($mainPropertyUrl);
}
这将导致对每个属性进行单独的API调用,因此如果TradeMe限制了您在给定时间段内可以提出的请求数,请注意API速率限制。
可能有一种方法可以在一次点击中检索多个商品详情,这比为产品列表点击一次API效率要高得多,然后再次针对该结果中的每个商家信息。您需要查阅他们的文档,因为我不熟悉此API。
$mainXmlUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml");
foreach ($mainXmlUrl->List->Listing as $listing) {
$mainPropertyUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Listings/{$listing->ListingId}.xml");
echo '<div class="listingContainer">';
foreach ($mainPropertyUrl->Attributes->Attribute as $attribute) {
echo '<span class="name">'.$attribute->DisplayName.':</span>';
echo '<span class="value">'.$attribute->Value.'</span>';
}
}