2012-05-14 3 views
3

PHP와 JavaScript를 사용하여 RSS 피드를 구문 분석하고 있습니다. 먼저 RSS 피드를 얻기 위해 PHP로 프록시를 만들었습니다. 그런 다음 JavaScript를 사용하여이 RSS 피드에서 개별 데이터를 가져옵니다. 내 문제는 자바 스크립트와 함께. console.log(rssData);을 오류없이 사용하면 전체 JavaScript 문서를 가져올 수 있습니다. 이 문서의 개별 요소에 <title>, <description> 또는 <pubDate>을 사용하려고하면 rssData.getElementsByName("title");을 사용하면 "Uncaught TypeError : Object .... getElementsByName '메서드가 없습니다."라는 오류 메시지가 나타납니다. 그래서 내 질문에 RSS 피드 요소를 얻는 방법입니다? (업데이트)javascript를 사용하여 피드를 구문 분석합니다.

자바 스크립트

function httpGet(theUrl) { 
    var xmlHttp = null; 

    xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("GET", theUrl, false); 
    xmlHttp.send(null); 
    return xmlHttp.responseXML; 
} 

// rss source 
var rssData = httpGet('http://website.com/rss.php'); 

// rss values 
var allTitles = rssData.getElementsByTagName("title"); // title 
var allDate = rssData.getElementsByTagName("pubDate"); // date 
+0

'xmlHttp.responseText'는'문자열'입니다. 'String'에는'getElementsByName()'함수가 없습니다. XML 응답을 기대하십니까? 대신'xmlHttp.responseXML'을 시도하십시오. 또한 JS로이 작업을 수행하는 도메인 간 문제가 발생할 수도 있습니다. AJAX 요청을 통해 PHP 측에서 피드를 얻을 수 있습니다. –

+0

@Cory 응답 해 주셔서 감사합니다. 그렇습니다. 예'xmlHttp.responseXML'은 내가 찾고있는 것입니다. 또한 모든 액세스에 원본 정책 헤더를 추가했습니다. –

답변

3

httpGet 함수의 마지막 줄을 변경해보십시오 : 결국

return xmlHttp.responseXML; 

, 다시 XML 응답을 기대하고있다. 이 줄을 PHP 프록시에 추가해야 할 수도 있습니다 :

header("Content-type: text/xml"); 

반환 내용을 XML로 보내도록 강제 설정하려면.

+0

'return xmlHttp.responseXML;'내가 정확히 필요한 것은 감사합니다. –

+0

한가지 더 도와 주실 수 있습니까? 모든 날짜를 반복하고 오늘의 현재 날짜와 일치하는 제목 만 반환하려고합니다. 내 게시물을 업데이트했습니다. –

+0

그것은 또 다른 질문입니다. –

관련 문제