2012-02-02 3 views
3

XML 파일의 링크와 설명은 http://feeds.feedburner.com/Torrentfreak에서 다뤄야합니다. 내가 asp.net 페이지에 표시 할 목록 뷰 컨트롤이를 사용했다htmlagilitypack을 사용하여 xml 파일을 스크래핑하는 방법

var webGet = new HtmlWeb(); 
       var document = webGet.Load("http://feeds.feedburner.com/TechCrunch"); 
    var TechCrunch = from info in document.DocumentNode.SelectNodes("//channel") 
           from link in info.SelectNodes("//guid[@isPermaLink='false']") 
           from content in info.SelectNodes("//description") 
    select new 
           { 
            LinkURL = info.InnerText, 
            Content = content.InnerText, 

           }; 
lvLinks.DataSource = TechCrunch; 
      lvLinks.DataBind(); 

:

은이 코드를 사용했다. 사용

<%# Eval("LinkURL") %> - <%# Eval("Text") %> 

그러나 그 보여주는 오류

값은 null 일 수 없습니다. 매개 변수 이름 : 출처

문제점 : 그리고 HtmlAgilityPack을 사용하여 XML 노드 데이터를 다룰 수 있습니까? 을 알려주십시오. 감사합니다.

+0

왜 HTML 라이브러리 대신 HtmlAgil ityPack? – jerjer

+0

@ jerjer : Actaully HTML 데이터를 스크랩하기 위해 HtmlAgilityPack을 사용하고 있습니다 만, 지금은 XML 파일을 만났을 때이를 달성 할 수있는 방법을 찾아야합니다. – CracLock

답변

0

대신 HtmlAgilityPack의 RSS 라이브러리를 사용해보십시오 : 여기

당신을 도울 수있는 몇 가지 링크되어 있습니다

+0

이 대신 jerjer가 제안한 XML 라이브러리를 선택하면 어떻게 될까요? – CracLock

+0

그리고 XML 라이브러리보다 더 효율적입니까? – CracLock

+0

@CracLock, HtmlAgilityPack과 XML 라이브러리 사이에서 벤치 마크를 수행하지는 않았지만 효율성 측면에서 큰 차이가 없다고 생각합니다. IMO, XML 라이브러리는 XML 파일을 처리 할 때 HtmlAgilityPack보다 사용하기가 더 쉽습니다. – jerjer

0

오류로 인해 값이 null입니다. 따라서 너무 가능성이 있습니다

select new 
     { 
       LinkURL = info.InnerText??string.Empty, 
       Content = content.InnerText??string.Empty, 

     }; 

또는 aspx에 있습니다. 나는이 같은 문자열을 뺀해야한다고 생각 :

<%# Eval("LinkURL")??string.Empty %>+"-"+<%# Eval("Text")??string.Empty %> 
+0

여전히 같은 문제가 해결되지 않습니다. – CracLock

관련 문제