HTMLAgility Pack - OuterHtml只读?

html-agility-pack

嘿那里,我正在遍历我自己的代码库中的所有链接,并且出于本地化原因将它们从<a href="x"><asp:HyperLink> 。我正在使用HTMLAgilityPack(和其他东西),我想只为我找到的链接更改OuterHtml对象..但它是只读的?

我是HAP的新手,我是否需要创建一个新节点并删除旧节点?有没有人碰到这个?

谢谢!

热门答案

如果您将整个文档视为字符串,为什么要使用HTML Agility Pack。而是查找标签并替换它们然后回写文档。

var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);

var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
    link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();

你的ConvertLink看起来像这样:

var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);

var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
    link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();

(没有编译,所以可能需要一些调整)。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因