gpt4 book ai didi

c# - HtmlAgilityPack 设置节点 InnerText

转载 作者:IT王子 更新时间:2023-10-29 04:16:47 26 4
gpt4 key购买 nike

我想用另一个文本替换 HTML 标记的内部文本。我正在使用 HtmlAgilityPack
我用这段代码提取所有文本

HtmlDocument doc = new HtmlDocument();
doc.Load("some path")

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//text()[normalize-space(.) != '']")) {
// How to replace node.InnerText with some text ?
}

但是 InnerText 是只读的。如何用其他文本替换文本并将它们保存到文件?

最佳答案

尝试下面的代码。它选择所有没有子节点的节点并过滤掉脚本节点。也许您需要添加一些额外的过滤。除了你的 XPath 表达式之外,这个表达式还寻找叶节点并过滤掉 <script> 的文本内容。标签。

var nodes = doc.DocumentNode.SelectNodes("//body//text()[(normalize-space(.) != '') and not(parent::script) and not(*)]");
foreach (HtmlNode htmlNode in nodes)
{
htmlNode.ParentNode.ReplaceChild(HtmlTextNode.CreateNode(htmlNode.InnerText + "_translated"), htmlNode);
}

关于c# - HtmlAgilityPack 设置节点 InnerText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274421/

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