2010-12-03 3 views
2

html 민첩성 팩 사용. 어떻게하면 전체 HTML 문서에서 html "fragment"를 추출 할 수 있습니까? 내 목적으로, HTML "조각"은 <body> 태그 안에있는 모든 내용으로 정의됩니다.Html 민첩성 팩 - html 문서에서 html 조각 가져 오기

샘플 입력 :

<html> 
    <head> 
    <title>blah</title> 
    </head> 
    <body> 
    <p>My content</p> 
    </body> 
</html> 

원하는 출력 : 예를 들어

이상적으로

<p>My content</p> 

, 나는 경우 내용이 변경되지 반환하고 싶습니다 <html>을 포함하지 않았습니다. 또는 <body> 요소 (예 : 전체 HTML 문서가 아니라면 처음부터 조각을 통과했다고 가정하십시오.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

답변

6

당신은 조각으로해야한다고 생각합니다.

doc.DocumentNode.SelectSingleNode("//body") // returns body with entire contents :) 

는 다음 기준에 null 값을 확인할 수 있습니다 그리고이 제공되는 경우 그대로, 당신은 문자열을 취할 수 다음과 같이

당신은 신체 또는 HTML에 대한 문서의 selectnodes 할 수 있습니다.

은 도움이 :)

+0

도현 ... 간단 것을되었을 수 있습니다 생각; 감사! – DanP

4

다음은 작동합니다 희망 :

public string GetFragment(HtmlDocument document) 
{ 
    return doc.DocumentNode.SelectSingleNode("//body") == null ? doc.DocumentNode.InnerHtml : doc.DocumentNode.SelectSingleNode("//body").InnerHtml; 
} 
관련 문제