2016-08-25 2 views
0

나는 이베이 제휴사 (파트너 네트워크) rss의 제목을 추출하는 데 PHP 코드를 사용하고 있지만 성공하지 못했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 그건 그렇고, 너무 제목을 연결할 수 있습니까?RSS 피드 항목 제목을 추출 할 수 없습니다.

<?php 
$xml = new DOMDocument(); 
@$xml->loadHTMLFile('http://rest.ebay.com/epn/v1/find/item.rss?keyword=%28jewelry%2Ccraft%2Cclothing%2Cshoes%2Cdiy%29&sortOrder=BestMatch&programid=1&campaignid=5337945426&toolid=10039&listingType1=All&lgeo=1&topRatedSeller=true&hideDuplicateItems=true&entriesPerPage=2&feedType=rss'); 

$products = array(); 

    //Loop through each <td> tag in the dom and extract inner html 

foreach($xml->getElementsByTagName('td') as $p) { 
    $children = $p->childNodes; 
    $phtml = ''; 
    foreach ($children as $child) 
    { 
     $phtml.= $p->ownerDocument->saveHTML($child); 
    }  

    echo '<div id="mainproductafilioright1"><div class="product">' . $phtml . '</div></div>';  
} 
?> 
+1

어 -' getElementsByTagName ('td')'RSS 피드를 얻는 것을 보면'td' 태그가 없습니다 ... 코드를 복사하고 원하는 것을하기 위해 코드를 전혀 편집하지 않았습니다. – cmorrissey

+0

그것이 다른 RSS 용으로 이전에 구성 해 놓은 코드이기 때문입니다. – User325313

답변

0

. 피드 페이지를 확인하는 동안 td 요소가 <![CDATA[ 안에 있음을 알 수있었습니다. 제목이 그 바깥에 있기 때문에 제목을 얻을 수 없습니다. 당신은 출력이 print를 사용 할 수

$feedurl = "http://rest.ebay.com/epn/v1/find/item.rss?keyword=%28jewelry%2Ccraft%2Cclothing%2Cshoes%2Cdiy%29&sortOrder=BestMatch&programid=1&campaignid=5337945426&toolid=10039&listingType1=All&lgeo=1&topRatedSeller=true&hideDuplicateItems=true&entriesPerPage=8&feedType=rss"; 

$rss = simplexml_load_file($feedurl); 

foreach ($rss->channel->item as $item) { 

$link = $item->link; 

$title = $item->title; 

$description = $item->description; 

} 

:

가 (이 이전 한 삽입 아니라, 완전히 새로운 코드)이 임시 해결 방법을 시도해보십시오

print = $description;

0

댓글겠습니까 PHP하지만 충분하지 담당자.

피드에 td 요소가 없습니다. 또한 HTML 파일이 아닙니다. 대신

:

  • 가 반복 처리 노드를 반환
  • 제목 노드를 선택하고 실제 DOM 노드를 노드의
  • 추출 텍스트 값을있어 확인하기 위해 XPath 식을 만들기 XML로

    • 로드. 여기

    내가 그것을 할 거라고 방법은 다음과 같습니다 당신은 올바른 방법에있어

    $doc = new DOMDocument(); 
    $doc->loadXML("http://www.longurl.com"); 
    
    $xpath = new DOMXPath($doc); 
    $items = $xpath->query("/rss/channel/item/title"); 
    
    foreach($items as $item) { 
        if(XML_ELEMENT_NODE === $item->nodeType) { 
         echo '<div id="mainproductafilioright1"><div class="product">' . $item->textContent . '</div></div>'; 
        } 
    }