node.InnerHtml에서 "img"및 "a"태그를 제거하십시오.

c# html html-agility-pack

문제

내 HTML에서 텍스트 만 추출하고 싶다.

var sb = new StringBuilder();
doc.LoadHtml(inputHTml);

foreach (var node in Doc.DocumentNode.ChildNodes)
{
    if (node.Name == "strong" || node.Name == "#text" 
        || node.Name == "br" || node.Name == "div" 
        || node.Name == "p" || node.Name != "img")
    {
        sb.Append(node.InnerHtml);
    }
}

내 노드에서 지금 .InnerHtml이 HTML입니다 :

1.

var sb = new StringBuilder();
doc.LoadHtml(inputHTml);

foreach (var node in Doc.DocumentNode.ChildNodes)
{
    if (node.Name == "strong" || node.Name == "#text" 
        || node.Name == "br" || node.Name == "div" 
        || node.Name == "p" || node.Name != "img")
    {
        sb.Append(node.InnerHtml);
    }
}

2.

var sb = new StringBuilder();
doc.LoadHtml(inputHTml);

foreach (var node in Doc.DocumentNode.ChildNodes)
{
    if (node.Name == "strong" || node.Name == "#text" 
        || node.Name == "br" || node.Name == "div" 
        || node.Name == "p" || node.Name != "img")
    {
        sb.Append(node.InnerHtml);
    }
}

img와 태그를 제거하는 방법?

img 태그에 닫기 태그가 없습니다.

수락 된 답변

확실하지 않은 점은 no2가 어떤 의미인지 이해합니다. 그러나 HtmlNode 에서 모든 <img> 요소를 제거 HtmlNode 과 같이 시도하십시오.

var imgs = node.SelectNodes("//img");
foreach (var img in imgs)
{
    img.Remove();
}

Remove() 함수는 부모로부터 HtmlNode 를 제거합니다. 이 태그를 닫지 않고도 <img> 요소를 제거해도 문제가 없습니다.

업데이트 :

이 XPath 표현식을 사용하여 단일 쿼리에서 모든 <img><a> 요소를 선택할 수 있습니다.

var imgs = node.SelectNodes("//img");
foreach (var img in imgs)
{
    img.Remove();
}

결과 집합을 한 번 반복하여 각각을 제거 할 수 있습니다.


인기 답변

htmldocument 샘플 에서이 html 노드 (img)를 참조하십시오. 당신도 그렇게 할 수 있습니다 :

       var sb = new StringBuilder();
doc.LoadHtml(inputHTml);

        foreach (var node in doc.DocumentNode.ChildNodes)
    {
        if (node.Name != "img" && node.Name!="a")
        {
            sb.Append(node.InnerHtml);
        }
    }



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