2010-02-25 5 views
1

나는 Amazon.com 데이터를 얻기 위해 CloudFusion 클래스를 사용하고 있는데 내 코드는 간단하다 : 내가하고 싶은 무엇PHP에서 SimpleXML 객체를 올바르게 구문 분석하려면 어떻게해야합니까?

SimpleXMLElement Object (
    [Request] => SimpleXMLElement Object 
     (
      [IsValid] => True 
      [ItemSearchRequest] => SimpleXMLElement Object 
       (
        [Keywords] => shoes 
        [ResponseGroup] => Small 
        [SearchIndex] => Blended 
       ) 

     ) 

    [TotalResults] => 737435 
    [TotalPages] => 245816 
    [SearchResultsMap] => SimpleXMLElement Object 
     (
      [SearchIndex] => Array 
       (
        [0] => SimpleXMLElement Object 
         (
          [IndexName] => Kitchen 
        .... 
     ) 

    [Item] => Array 
     (
      [0] => SimpleXMLElement Object 
       (
        [ASIN] => B0001Z95QY 
        [DetailPageURL] => http://www.amazon.com/Household-Essentials-MS6030-Seasonal-Storage/dp/B0001Z95QY%3FSubscriptionId%3D0WASFFPR5B82TH4ZQB82%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0001Z95QY 
        [ItemLinks] => SimpleXMLElement Object 
         (
          [ItemLink] => Array 
           (
            [0] => SimpleXMLElement Object 
             (
              [Description] => Technical Details 
              [URL] => http://www.amazon.com/Household-Essentials-MS6030-Seasonal-Storage/dp/tech-data/B0001Z95QY%3FSubscriptionId%3D0WASFFPR5B82TH4ZQB82%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB0001Z95QY 
             ) .................... 
       ) 

      [1] => SimpleXMLElement Object 
       (
        [ASIN] => B001ACNBZ8 
        [DetailPageURL] => http://www.amazon.com/Peet-Shoe-Dryer-Boot-Original/dp/B001ACNBZ8%3FSubscriptionId%3D0WASFFPR5B82TH4ZQB82%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001ACNBZ8 
        [ItemLinks] => SimpleXMLElement Object 
         (................... 
     ) 

) 

다운받을 수 있습니다 :

$items = $pas->item_search("shoes", array( 
    "ResponseGroup" => "Small", 
    "SearchIndex" => "Blended")); 
$items = $items->body->Items; 
echo "<pre>"; 
print_r($items); 
echo "</pre>"; 

다음 반환 "항목"수준으로 이동 한 다음 foreach를 실행하여 개별 항목을 가져옵니다. $items = $items->Item을 시도했지만 첫 번째 항목 만 반환합니다.

아이디어가 있으십니까?

답변

0

우선 SimpleXMLElement에서 print_r()을 사용하지 말고 asXML()을 사용하여 XML을 살펴보아야합니다. 이것 역시 print_r()의 출력 대신 여기에 게시해야합니다.

나는 그래서 나는 추측을하고 같은 시도하는 것이 좋습니다 것입니다 당신이 게시 한 코드를 해독 할 수 있습니다 : 당신이 뭔가를 반복 할 경우, 어쨌든

foreach ($items->body->Items->Item as $Item) 
{ 
} 

을 foreach 문을 답입니다.

관련 문제