Установить InnerText с помощью HtmlAgilityPack - PullRequest
7 голосов
/ 01 октября 2010

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

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

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

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

1 Ответ

5 голосов
/ 19 октября 2010

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

Так что возможно

HtmlTextNode.Text = "";

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

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

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);
...