gpt4 book ai didi

c# - 使用 HTML Agility Pack 替换 HTML div InnerText 标签

转载 作者:太空狗 更新时间:2023-10-29 21:18:58 25 4
gpt4 key购买 nike

我正在使用 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.";

关于c# - 使用 HTML Agility Pack 替换 HTML div InnerText 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com