<span>태그는</span> 제거 <span>하고 텍스트는 그대로 두시겠습니까?</span>

c# html-agility-pack

문제

HtmlAgilityPack을 사용하여 HTML 코드가 포함 된 문자열을 구문 분석합니다. 내가하려는 것은 <span> 태그를 제거하지만 태그 사이에 내용을 유지하는 것입니다. 지금까지 내 코드가 있습니다 :

var text = @"<div><span>This is some text.</span>More text here.</div>
<div>I have a question.<span>Hi</span></div>";
var doc = new HtmlDocument();
doc.LoadHtml(text);
var nodes = doc.DocumentNode.SelectNodes("//span");
foreach (HtmlNode node in nodes)
{
   node.Remove();
}
String result = doc.DocumentNode.InnerHtml;

문제는 result 가 "This is some text"입니다. - <span> 태그 사이의 텍스트 내가 뭘 하려는지 어떻게 성취 할 수 있니? 그 node.Remove 실제로 전체 노드를 제거한다는 것을 node.Remove 습니다. 나는 remove.Node 라고 말할 수있는 방법이 있기를 remove.Node 지만, 내용은 그대로 유지했습니다.

수락 된 답변

손주를 유지하면서 부모로부터 그 노드를 제거하십시오.

foreach (var node in nodes)
{
    node.ParentNode.RemoveChild(node,true);
}



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