Установить InnerText с помощью HtmlAgilityPack

c# html-agility-pack text

Вопрос

Я попытался установить InnerText, используя следующее, но мне не разрешено устанавливать свойство InnerText:

node.InnerText = node.InnerText.Remove(100) + ".."; 

Причиной этого является то, что я хочу только удалить текст, а не фактические элементы:

<div>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    <img src="" />
</div>

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

Я сам столкнулся с той же проблемой. Хотя в документации говорится, что получить или установить ее явно доступно только для чтения. Но внутренний текст относится ко всему, что происходит между тегами. Так что если у вас будет сто детей, то ВСЕ их текст, включая фактические теги, будет там. Я думаю, что делать то, что вы и я хотим, чтобы мы использовали свойство Text. Получите фактический тег и используйте свойство Text.

Так, возможно,

HtmlTextNode.Text = "";

Обратите внимание, что вы можете установить только текст, если он имеет тип HtmlTextNode.

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

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);


Related

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