2012-10-28 43 views
-1

可能重複:
foreach and simplexml的SimpleXML創建一個foreach

我已經得到了我的XML文件加載正確的,但我不確定我怎麼可以創建一個簡單的foreach是我可以有[PictureHref][Title][PriceDisplay]爲Feed中給出的每個項目加載。

我在文檔中找不到明確的示例。

XML Example

目前我的PHP代碼由以下部分組成:

$mainUrl = 'http://api.trademe.co.nz/v1/Member/{id}/Listings/All.xml'; 
$xmlFeed = simplexml_load_file($mainUrl); 

XML

<Listings xmlns="http://api.trademe.co.nz/v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <TotalCount>1</TotalCount> 
    <Page>1</Page> 
    <PageSize>1</PageSize> 
    <List> 
     <Listing> 
      <ListingId>527496168</ListingId> 
      <Title>Clifftop Resort style Living with stunning aspect</Title> 
      <Category>0350-5748-3399-</Category> 
      <StartPrice>0</StartPrice> 
      <StartDate>2012-10-26T21:24:47.073Z</StartDate> 
      <EndDate>2012-12-21T21:24:47.073Z</EndDate> 
      <ListingLength i:nil="true" /> 
      <HasGallery>true</HasGallery> 
      <AsAt>2012-10-28T22:48:47.409946Z</AsAt> 
      <CategoryPath>/Trade-me-property/Residential/For-sale</CategoryPath> 
      <PictureHref>http://images.trademe.co.nz/photoserver/thumb/10/239043710.jpg</PictureHref> 
      <RegionId>2</RegionId> 
      <Region>Auckland</Region> 
      <Suburb>North Shore</Suburb> 
      <NoteDate>1970-01-01T00:00:00Z</NoteDate> 
      <ReserveState>NotApplicable</ReserveState> 
      <IsClassified>true</IsClassified> 
      <GeographicLocation> 
       <Latitude>-36.5681333</Latitude> 
       <Longitude>174.6936265</Longitude> 
       <Northing>5951700</Northing> 
       <Easting>1751547</Easting> 
       <Accuracy>Address</Accuracy> 
      </GeographicLocation> 
      <PriceDisplay>To be auctioned</PriceDisplay> 
     </Listing> 
    </List> 
</Listings> 
+0

我們能看到你的XML的例子嗎? – SomeKittens

+0

@SomeKittens肯定http://api.trademe.co.nz/v1/Member/4389666/Listings/All.xml –

+0

@Jess McKenzie我認爲你應該刪除最後一條不應該成爲公共信息的評論......我將編輯您的問題與XML – Baba

回答

1

所有你需要的是

$url = simplexml_load_file("__YOUR__URL___"); 
$listing = $url->List->Listing; 

echo "<pre>"; 
echo $listing->PictureHref, PHP_EOL; 
echo $listing->Title, PHP_EOL; 
echo $listing->PriceDisplay, PHP_EOL; 
0

雖然我建議你使用DOM文檔代替了SimpleXML的,這裏是你如何」 d在SimpleXML中做到這一點:

$data = array(); 

foreach($xmlFeed->List as $item) { 
    $data[] = array(
     (string) $item->Listing->PictureHref, 
     (string) $item->Listing->Title, 
     (string) $item->Listing->PriceDisplay 
    ); 
} 

你可以看到它(八九不離十,我不得不改變一些東西)at CodePad

+0

謝謝,我怎樣才能把3個項目變成一個$ var,我可以在適當的地方回聲? –

+0

它已經是'$ data'中的一個變量,它是一個數組。數組的每個索引都是一個List項目,其中包含您想要的三個數據。 – SomeKittens