HTML 민첩성 팩 - ReplaceNode가 본문의 InnerHTML을 변경하지 않습니다.

html-agility-pack innerhtml replace

문제

나는 이것을 가지고있다

몸:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

코드:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

이 작업을 수행 한 후에 OutterHtml 또는 InnerText가 좋은 결과를 보여 주지만 본문 노드의 InnerHtml은 처음부터 동일하게 유지됩니다. 내 코드에 문제가 있습니까?

결과:

<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>

수락 된 답변

나는 그것이 이전 노드를 대체하기 위해 노드를 추가하는 방식과 관련이있을 것이라고 생각합니다. 이 솔루션이 텍스트 노드를자를 수 있는지 확인하십시오. 나는 빠른 테스트를했고 세 명 모두 나에게 같은 결과를 주었다.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
HtmlNode body = doc.DocumentNode.SelectSingleNode("//body");

foreach (var paragraph in body.Descendants("p"))
{
    paragraph.InnerHtml = paragraph.InnerHtml.Substring(0, 25) + "...";
}

Console.WriteLine(body.InnerHtml);
Console.WriteLine(body.InnerText);
Console.WriteLine(body.OuterHtml); 



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.