我正在使用 HTML Agility Pack 来操作和编辑 HTML 文档。我想更改该字段中的文本,如下所示:
<div id="Div1"><b>Some text here.</b><br></div>
我希望将此 div 中的文本更新为:
<div id="Div1"><b>Some other text.</b><br></div>
我尝试使用以下代码执行此操作,但它似乎不起作用,因为 InnerText 属性是只读的。
HtmlTextNode hNode = null;
hNode = hDoc.DocumentNode.SelectSingleNode("//div[@id='Div1']") as HtmlTextNode;
hNode.InnerText = "Some other text.";
hDoc.Save("C:\FileName.html");
我在这里做错了什么?如上所述,InnerText 是一个只读字段,尽管它在文档中写为“获取或设置”。是否有其他方法可以完成此操作?
这里使用了这个表达式://div[@id='Div1']
选择div
,这不是一个HtmlTextNode
, 所以hNode
变量保持null
在你的例子中。
The InnerText
属性确实是只读的,但是HtmlTextNode
有财产Text
可用于设置必要的值。但在此之前您应该获取该文本节点。使用以下表达式可以轻松完成此操作://div[@id='Div1']//b//text()
:
hNode = hDoc.DocumentNode
.SelectSingleNode("//div[@id='Div1']//b//text()") as HtmlTextNode;
hNode.Text = "Some other text.";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)