我想用其他文本替换 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>
tags.
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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)