2009-03-17 10 views
4

내가 링크, 양식, 태그 등HTML 구문 분석 라이브러리는 .NET

LGPL을 추출하기 위해 HTML을 구문 분석 라이브러리를 찾고 있어요 또는 다른 상업적 개발 친화적 라이센스가 바람직합니다.

이 라이브러리 중 하나에 대한 경험이 있습니까? 또는 다른 유사한 라이브러리를 추천 할 수 있습니까?

foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//[email protected]")) { 
    //... 
} 

편집 : 단순히 예를 들어 (홈페이지에서), 모든 링크를 찾을 수 -

답변

10

HTML Agility Pack는 일의이 형태의 예를 가지고 있으며, 익숙한 쿼리에 XPath를 사용 6/19/2012 현재로

, 위의 코드뿐만 아니라 유일한 코드 샘플이 작동하지 않습니다 HTML Agility Pack Examples 페이지에 표시. 아래 그림과 같이 약간의 조정이 필요합니다.

HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]")) 
{ 
    HtmlAttribute att = link.Attributes["href"]; 
    att.Value = Foo(att); // fix the link 
} 
doc.Save("file.htm"); 
+2

HTML Agility Pack은 멋지고, 나도 좋습니다. –

+2

동의. 우리는 이것을 프로덕션 환경에서 사용했습니다. 여기서 약 2 년 동안 약 50,000 (X) 개의 HTML 파일을 구문 분석했습니다. 잘됐다. – core

+0

GPL 프로젝트에 대한 권장 사항이 있습니까? HTML 민첩성 팩은 [GPL과 호환되지 않는] Ms-Pl입니다 (https://www.gnu.org/licenses/license-list.html#ms-pl). –