2017-12-11 4 views
-1

body 요소와 그 내부 HTML 만 포함하는 여러 파일에서 html 콘텐츠를 복사하는 데 Html Agility Pack을 사용하고 있습니다. 하나의 새 html 파일에 포함됩니다. 이를 수행하는 필수 코드는 다음과 같습니다. _pageDoc은 새 파일의 경우 HtmlDocument이고 contentNode은 해당 문서의 하위 파일이며 각 파일의 경우 div을 만들고 contentNode에 추가합니다.HtmlDocument에 줄 바꿈을 어떻게 삽입합니까?

var contents = GetContentDescs(courseId); 
foreach (var content in contents) 
{ 
    var html = File.ReadAllText(Path.Combine(HtmlDir, content.ContentId + ".html")); 
    var contentDoc = new HtmlDocument(); 
    contentDoc.LoadHtml(html); 

    var bodyNode = contentDoc.DocumentNode.Descendants("body").Single(); 
    var contentDiv = _pageDoc.CreateElement("div"); 
    contentDiv.InnerHtml = bodyNode.InnerHtml; 
    contentNode.AppendChild(contentDiv); 
} 

예상대로이 작동하고 렌더링 된 HTML은 완벽하지만, 모든 contentDiv 한 줄에, 매우 읽을 수 없습니다. 각 contentDiv 사이에 HTML 파일 (대 렌더링 된 html)의 줄 바꿈을 삽입하려면 어떻게해야합니까?

답변

-1

뭔가

HtmlNode linebreak = doc.CreateElement("br");  
var contentDivs= doc.DocumentNode.SelectNodes("contentDiv"); 
    for (int i = 0; i < contentDivs.Count; i++) 
    { 
     if (i > 0) 
     { 
      doc.DocumentNode.InsertBefore(linebreak1, contentDivs[i]); 
     } 
    } 

처럼이 문서를 읽고 몇 가지 더러운 코드를 넣었습니다하지만 민첩성 팩 내가 렌더링 줄 바꿈을하지 않으려는 특별히 말했다

+0

을 사용한 적이, 즉' 사용자가 보는 문서에서 'br'을 선택하십시오. 나는 실제 HTML 문서의 텍스트에서 줄 바꿈을 원한다. 사용자가 보는 텍스트가 아니라 HTML 편집기에서 볼 수있는 텍스트입니다. 이것은 요소를 삽입하여 수행 할 수 없습니다. HTML 코드에'Environment.Newline'과 같은 것이 필요합니다. – ProfK

+0

"렌더링 된 HTML은 완벽합니다." – ProfK

+1

@ProfK 즐거운 시간 되시길 바랍니다. :) –

관련 문제