2009-07-26 3 views
2

테스트하거나 그 내용을 표명 할 목적으로 .net을 사용하여 html을 구문 분석하려고합니다. 즉.net/C에 대한 Html 파서 및 객체 모델 #

HTMLDocument의의 문서 =의 getDocument ("일부 HTML") 목록 양식 = doc.Forms() 링크 링크 = doc.GetLinkByText ("새 고객")

아이디어는 사람들이 쓸 수 있도록하는 것입니다 C#의 테스트는 webrat (루비)에서하는 것과 유사합니다.

방문 ('\') "이름"fills_in,

"저장" "믹" 클릭이 나는 HTML 민첩성 팩, sgmlreader 등을 본 적이 있지만, 사람이 물체를 만들었습니다 이 모델, 즉 HTML 요소를 나타내는 클래스, 폼, 버튼 등의 집합 ??

건배.

+2

Html 민첩성 팩은 용도에 매우 적합하지만 XML 쿼리에 XPATH를 사용해야합니다. –

+0

실제로 u가 질문을 읽습니까 ??? – mickdelaney

+0

존 손더스 (John Saunders)는 Html Agility Pack의 대안을 원한다고 지적했지만, 목적에 매우 적합하다고 생각합니다. –

답변

0

내가 말할 수있는 한, .NET에서 HTML DOM에 가장 가까운 것은 HTML DOM입니다.

Windows Forms WebBrowser 컨트롤을 사용하여 HTML과 함께로드 한 다음 외부에서 DOM에 액세스 할 수 있습니다.

여기에 .NET이 있습니다. VB.NET에서 작동하는 모든 코드는 C#에서 작동합니다.

+0

나는 이것에 대한 UI 컨트롤을 호스팅하지 않기를 바란다. UI 컨트롤에 대한 일반적인 스레딩 문제에 빠지며 성능이 저하 될 것이다. asp.net mvc 페이지 테스트에 사용하고 셀레늄 등을 피한다. 브라우저 오버 헤드 때문에. HtmlUnit (java 기반)과 같은 것이 이상적 일 것입니다.내가 그것의 괴물로 그것을 포팅 할 시간이 있다면 확실하지 않다, 그것은 또한 자바 스크립트를 지원하지만, 내 애플 리케이션 (즉 눈에 ​​거슬리는)을 테스트 할 필요가 없다. – mickdelaney

+0

HmlUnit에서 : 최종 WebClient webClient = new WebClient(); 최종 Html 페이지 page = webClient.getPage ("http://htmlunit.sourceforge.net"); 최종 HtmlDivision div = page.getHtmlElementById ("some_div_id"); 최종 HtmlAnchor 앵커 = page.getAnchorByName ("앵커 _ 이름"); http://htmlunit.sourceforge.net/ – mickdelaney

+0

댓글에 형식이 지정되지 않았습니까? – mickdelaney

0

당신이 주요 옵션이 있습니다

  1. 가 U에 대한 HTML을 구문 분석하는 몇 가지 브라우저 엔진 (예 : 인터넷 익스플로러)를 사용하고 유 생성 된 DOM에 액세스 할 줄 것이다. 이 옵션을

  2. 사용 HtmlAgilityPack

+1

-1 : 1. 15 분 전에 대답했습니다. 2. 질문을 읽으십시오. 그는 HtmlAgilityPack에 대해 알고 있고 그것을 원하지 않습니다. –

+0

맞습니다. 그의 마지막 부분을 놓쳤다. – yosig81

1

Here 같은 몇 가지 가벼운 무게 파서는 HTML 구문 분석에 대한 좋은 라이브러리 (즉의 경우 간단 COM의에서) 브라우저 엔진과 어떤 상호 운용성을 hvae하는 U이 필요합니다, HtmlButton, HtmlInput과 같은 객체는 생성되지 않지만 HTML DOM을 사용하고 싶지 않다면 직접 시작하고 생성하는 것이 좋은 포인트입니다

0

HTML 단위 테스트를하려는 것처럼 들립니다. 셀레늄을 들여다 보셨나요? 심지어 C# 라이브러리가있어 C#으로 HTML 단위 테스트를 작성하고 요소가 존재하며 올바른 값을 갖고 링크를 클릭한다고 주장 할 수 있습니다. JavaScript/AJAX 사이트에서도 작동합니다.

+0

너무 느려서. 기본적으로 난 레일에서 내가 받아 들일 테스트의 대다수에 대한 webrat을 사용하여 그 메모리 브라우저 (기본적으로 html 파서) 때문에 매우 빠르고, 그때 나는 스피어 테스트를 위해 watir/selenium 등을 사용할 수 있지만 v는 느리다. 모든 것을 위해 사용하고 싶지 않습니다. – mickdelaney

0

HTML에 가장 적합한 파서는 HTQL COM입니다. HTQL 쿼리를 사용하여 HTML 내용을 검색 할 수 있습니다.