我正在尝试替换html元素中的一些代码。有一次,我在网页中添加了一些文本。在其他我需要删除它(它是基于geckofx的浏览器中的简单搜索引擎)
if (element.OuterHtml.Contains(spanStyle))
if (element.Parent != null)
{
string oldHtml = element.OuterHtml;
string newHtml = oldHtml.Replace(spanStyle, "").Replace("</span>", "");
element.Parent.InnerHtml = newHtml;
}
问题在于我无法替换该元素的OuterHtml - 相反,我试图替换它的父母的InnerHtml。
但是,只要执行element.Parent.InnerHtml = newHtml;
,element.Parent就会变为null,并且元素的OuterHtml仍然包含span元素。我甚至尝试替换element.Parent.InnerHtml的文本内容,以查看问题是否在删除标记,但显然它没有任何区别 - 只要我分配element.Parent.InnerHtml
,{{1} }变为空。
干杯!
的Bartosz
答案 0 :(得分:1)
如果更改父元素的InnerHtml
,则子元素显然不再是父元素的子元素,因此element.Parent
变为null
。您是否尝试将element.Parent
存储在这样的临时变量中?
var parent = element.Parent;
...
element.Parent.InnerHtml = newHtml;
...
// do something with the variable parent here which should not be null