Set InnerText with HtmlAgilityPack

感情迁移 提交于 2019-12-01 16:45:02

问题


I've tried to set InnerText using the following, but I'm not allowed to set the InnerText property:

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

The reason for this is that I only want to remove text, not actual elements:

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

回答1:


I have just run into the same problem myself. Although the documentation says get or set it clearly is read-only. But inner text applies to EVERYTHING between the tags. So if you have hundred of children ALL of their text including actual tags will be there. I think to do what you and I are wanting we need to use the Text property. Get the actual tag and use the Text property.

So perhaps

HtmlTextNode.Text = "";

Please note that you can only set the text if it is of type HtmlTextNode.

or i think you might get a better result if you just remove the tag and keep the grandchildren.

HtmlNode.Parent.Remove(textTagYouWantRemoved, true);


来源:https://stackoverflow.com/questions/3838282/set-innertext-with-htmlagilitypack

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!