c# – 使用HTML Agility Pack替换HTML div InnerText标记
发布时间:2020-12-15 04:12:16 所属栏目:百科 来源:网络整理
导读:我正在使用 HTML Agility Pack来操作和编辑HTML文档.我想更改字段中的文本,例如: div id="Div1"bSome text here./bbr/div 我希望更新此div中的文本: div id="Div1"bSome other text./bbr/div 我尝试使用以下代码执行此操作,但它似乎没有工作,因为InnerText
我正在使用
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.
InnerText属性实际上是只读的,但HtmlTextNode具有属性Text,可用于设置必要的值.但在此之前你应该得到那个文本节点.这可以通过以下表达式轻松完成:// div [@ id =’Div1′] // b // text(): hNode = hDoc.DocumentNode .SelectSingleNode("//div[@id='Div1']//b//text()") as HtmlTextNode; hNode.Text = "Some other text."; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |