2012-11-12 3 views
0

현재 내가 다음 코드하지만 어떤 이유로 만 출력됩니다의 Foreach 표시되지 않는 하나 이상의 변수

은 기본적으로 내가해야 할 시도 무엇 foreach는 mainPropertyUrl이 목록 목록의 foreach 문을 만들라고 하나 개 항목을 가지고 있지만 몇 가지 이유 난 단지 주요 사료가 위치한 하나 ListingId

을 다시 얻고 - 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 변수를 사용하지 않으려 고했지만 하나의 목록에 대해 작동하는 코드로 구현하는 방법을 잘 모르겠습니다.

$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

http://pinterest.com/pin/343118065329946155/ – markus

답변

0

시도 :

$mainPropertyUrl = simplexml_load_file("http://api.trademe.co.nz/v1/Listings/{$listing->ListingId}.xml"); 

나는 또한 목록 ID의 배열을 만들 수 있지만이 데이터를 표시하지 않도록 노력했다

오브젝트 액세스 신타 사이에 {}을 넣어야합니다. 엑스.

UPDATE :

$listing 배열, 그래서 루프가 있어야한다 :

foreach($listing as $l) { 
    $ListingArray[] = "$l->ListingId"; 
} 
+0

목록에 없음 다른 사람이있을 때 그것은 하나 개의 목록은 괜찮 았는데 거기 {} –

+0

전에 본 적이 틀 렸습니다. 중괄호는 메서드를 호출 할 때만 필요하며 속성에 액세스하지 않는 것이 좋습니다. –

+0

I를 작동하지 않았다 – Barmar

0

을 $ mainXmlUrl 간단한 형식의 여러 가지 목록의 목록이 포함되어 있습니다. 각각의 목록에 대해 $ mainPropertyUrl을 새로운 ListingId와 함께 호출하여 특정 목록에 대한 세부 정보를 가져와야합니다.

$ mainXmlUrl-> List-> Listing를 반복 할 수 있으며 각 노드에서 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 호출 결과, 그래서 트레이드는 주어진 기간에 할 수있는 요청의 수를 제한하는 경우 제한 API 속도 피려합니다.

한 번의 클릭으로 여러 목록 세부 정보를 검색하는 방법이있을 수 있습니다. 이는 제품 목록에 대해 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>'; 
    } 
} 
관련 문제