2011-05-06 3 views
0

C# 응용 프로그램에서 선택 HTML 필드를 가져 오려고합니다. 이 HTML 언제든지 변경할 수 있습니다 문자열에서 HTML 코드 조각을 어떻게 얻을 수 있습니까? C#

<HTML> 
    <BODY BGCOLOR="#123456"> 
     HELLO 
    </BODY> 
</HTML> 

다음에 올 수 있습니다 할 수있는 HTML은 ..., 내가 원하는 HTML의 부분은 BGCOLOR 예를 들어, 값입니다 # 123456

하거나 등 "흰색"또는 "빨간색"이 될 수 ...

내가 어떻게 할 수 있습니까?

필드 길이를 예측할 수 없어 부분 문자열이 작동하지 않는다고 생각합니다.

감사합니다.

+1

는 "C# HTML 구문 분석"에 대한 사이트를 검색을 시도하거나 "C# HTML 스크래핑는"그것은 당신에게 모든 말 대답의 수백을 얻을 것이다 : HTTP ://htmlagilitypack.codeplex.com/ – AllenG

답변

3

"HTML/BODY의 @의 BGCOLOR"를 사용하여 쿼리합니다.

과 같이 BGCOLOR 같은 것이 보일 수 있습니다 구문 분석 :

var htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(someHtml); 

var body = htmlDoc.DocumentNode.SelectSingleNode("//body"); 
string bgColor = body.Attributes["bgcolor"].Value; 
2

XPath 쿼리를 사용해야합니다.

는 HTML을 구문 분석 Html Agility Pack를 사용할 수있는을 XmlDocument에 http://support.microsoft.com/kb/308333

로드 HTML을보고

+0

질문에 제공된 HTML은 유효하지만 HTML이 유효하지 않은 경우 'XmlDocument'에로드하려고 시도 할 때 예외가 발생한다고 생각합니다. –

+0

html이 (가) 유효한 XML이 아닙니다. 한 가지는 대소 문자를 구분하지 않습니다. 또 하나는 닫기 태그가 필요하지 않습니다. –

관련 문제