2010-04-06 3 views
0

나는 원자를 파싱하기 위해 jQuery jFeed plugin을 사용하려고하는데, GeoRSS 피드가 있고 필요한 정보를 추출하는 데 문제가 있습니다. 예를 들어 요약 요소를 추출해야하며 HTML 페이지의 div에 내용을 렌더링하고 싶습니다. 또한 georss : point 요소의 내용을 추출하여 Google지도에 전달하여지도에서 점으로 렌더링하고 싶습니다. 문제는 jFeed가 GeoRSS 관련 정보를 제거하고있는 것 같습니다. 예를 들어 제목 요소를 문제없이 추출 할 수 있지만 요약 또는 georss : point 요소를 추출하지는 않습니다.jQuery를 사용하여 GeoRSS 피드 구문 분석

$(document).ready(function() { 
    $.getFeed({ 
    //url: 'http://datawarehouse.hrsa.gov/HGDWDataWebService/HGDWDataService.aspx?service=HC&zip=20002&radius=10', 
    url: 'test.xml', 
    success: function(feed) { 
     $.each(feed.items, function(index, value) { 
      $('#rssContent').append(value.title); // Set breakpoint here 
     }); 
    } 
    }); 
});

내가 추가 라인에 중단 점을 설정

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss"> 
    <title>Search Results from DataWarehouse.HRSA.gov</title> 
    <link rel="self" href="http://datawarehouse.hrsa.gov/HGDWDataWebService/HGDWDataService.aspx?service=HC&zip=20002&radius=10"/> 
    <link rel="alternate" href="http://datawarehouse.hrsa.gov/"/> 
    <author> 
    <name>HRSA Geospatial Data Warehouse</name> 
    </author> 
    <id>tag:datawarehouse.hrsa.gov,2010-04-05:/</id> 
    <updated>2010-04-05T19:25:28-05:00</updated> 
    <entry> 
    <title>Christ House</title> 
    <link href="http://www.christhouse.org" /> 
    <id>tag:datawarehouse.hrsa.gov,2010-04-05:/D388C4C6-FFA4-4091-819B-64D67DC64931</id> 
    <summary type="xhtml"> 
     <div xmlns="http://www.w3.org/1999/xhtml"> 
     <div class="vcard"> 
      <div class="fn org">Christ House</div> 
      <div class="adr"> 
      <div class="street-address">1717 Columbia Rd. N.W.</div>   <span class="locality">Washington</span>,   <span class="region">District of Columbia</span>,   <span class="postal-code">20009-2803</span> 
      </div> 
      <div class="tel">202-328-1100</div> 
     </div> 
     <div> 
      Categories:   <span class="category">Service Delivery Site</span> 
     </div> 
     </div> 
    </summary> 
    <georss:point>38.9243636363636 -77.0395636363637</georss:point> 
    <updated>2010-04-04T00:00:00-05:00</updated> 
    </entry> 
</feed>

다음은 내가 사용하고있어 jQuery 코드입니다 :

는 다음과 내가 함께 일하고 있어요 XML의 조각입니다 rssContent div로 이동하여 feed.items의 객체가 내가 소유 한 속성이 없음을 확인했습니다. 내가 잘못한 일을하고 있거나 jFeed가 원하는 방식으로 작동하도록 설계되지 않았습니까?

답변

1

jFeed처럼 보이는 항목은 몇 개 밖에 없습니다. jFeed의 출처 :

... 
jQuery('item', xml).each(function() { 

    var item = new JFeedItem(); 

    item.title = jQuery(this).find('title').eq(0).text(); 
    item.link = jQuery(this).find('link').eq(0).text(); 
    item.description = jQuery(this).find('description').eq(0).text(); 
    item.updated = jQuery(this).find('pubDate').eq(0).text(); 
    item.id = jQuery(this).find('guid').eq(0).text(); 

    feed.items.push(item); 
}); 
... 

jFeed를 수정하는 것은 비교적 간단해야합니다. jquery.jfeed.js에있는 소스 코드를 확인하십시오.

+0

내가 좋아하는 것은 내가 이것을 한 것이고 작동하지 않는다는 것이다. 밖으로 나왔어, 나는 소스의 .pack.js 버전을 참조하고 있었고 완전히이 명백한 지점을 놓쳤다. 내가 미쳤다고 생각하기 시작했기 때문에 당신이 이것을 언급 해 주어서 기뻐. 고맙습니다. – senfo

+1

플러그인과 라이브러리 소스를 파헤 치기까지 꽤 오래 걸렸지 만, 다소 편안해졌습니다. – Anurag