使用HtmlAgilityPack设置InnerText

8

我尝试使用以下方式设置InnerText,但不允许设置InnerText属性:

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

这是因为我只想删除文本,而不是实际元素:
<div>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    <img src="" />
</div>
1个回答

6

我刚刚也遇到了同样的问题。虽然文档说可以获取或设置,但实际上是只读的。不过 inner text 适用于标签之间的所有内容。所以如果你有成百上千个子元素,它们所有的文本包括实际的标签都会在其中。我认为为了达到我们想要的效果,我们需要使用 Text 属性。获取实际标签并使用 Text 属性。

因此,可能需要这样做:

HtmlTextNode.Text = "";

请注意,只有当文本类型为HtmlTextNode时才能设置文本。
或者,如果您删除标签并保留子元素,则可能会获得更好的结果。
HtmlNode.Parent.Remove(textTagYouWantRemoved, true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接