Удалите теги «img» и «a» из узла. InnerHtml

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);
    }
}

теперь в моем node.InnerHtml это html:

1.

<br><div>text</div><div>, text</div><div>text<br>
<img src="http://example.com/55.jpg" alt="" title="" height="100">
<img src="http://example.com/45.jpg" alt="text" title="text" height="100"></div>

2.

text&nbsp;text&nbsp;text.&nbsp;&nbsp;<a
 href="/content/essie-classics">text</a><br>
  <img> src="" alt="" title="" height="100"><img
 src="http://example.com/img_8862.jpg"
 alt="" title="" height="100"> 

как удалить img и теги?

img не имеет тега close

Принятый ответ

Не уверен, что я понимаю, что означает пункт № 2. Но если вы хотите удалить все элементы <img> из HtmlNode , вы можете попробовать:

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

Функция Remove() удалит HtmlNode из родителя. Это отлично работает для удаления элементов <img> , даже без закрытия тега.

ОБНОВИТЬ :

Вы можете использовать это выражение XPath для выбора всех элементов <img> и <a> в одном запросе:

node.SelectNodes("//*[self::img or self::a]");

то вы можете выполнить итерацию через набор результатов один раз, чтобы удалить каждый из них.


Популярные ответы

Обратитесь к этому узлу html remove (img) из образца htmldocument . вы также можете сделать так:

       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);
        }
    }


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow