代码之家  ›  专栏  ›  技术社区  ›  Andreas

使用htmlagilityPack设置innerText

  •  7
  • Andreas  · 技术社区  · 15 年前

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

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

    原因是我只想删除文本,而不是实际元素:

    <div>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        <img src="" />
    </div>
    
    1 回复  |  直到 13 年前
        1
  •  5
  •   uriDium    15 年前

    我自己也遇到了同样的问题。尽管文档中说get或set是只读的。但内部文本适用于标记之间的所有内容。所以如果你有上百个孩子,他们所有的文本,包括实际的标签都会在那里。我想做你和我想做的,我们需要使用文本属性。获取实际标记并使用文本属性。

    所以也许

    HtmlTextNode.Text = "";
    

    请注意,只有当文本类型为htmltextnode时,才能设置文本。

    或者我认为如果你移除标签并保留孙子们,你可能会得到更好的结果。

    HtmlNode.Parent.Remove(textTagYouWantRemoved, true);