嘿,我正在遍历我自己的代码库中的所有链接,出于本地化的原因将它们从<a href="x">更改为<asp:HyperLink>的。我使用HTMLAgilityPack来实现这一点(以及其他事情),我想只更改链接的OuterHtml对象,我find..but它是只读的?
我是HAP的新手,我需要创建一个新节点并删除旧节点吗?有没有人碰到过这个?
谢谢!
发布于 2009-08-04 19:08:39
我最终使用了..。
node.ParentNode.ReplaceChild(HtmlNode.CreateNode(HrefToAspLinkText(node.OuterHtml)), node)嗯。
发布于 2012-05-02 21:23:23
如果您将整个文档视为一个字符串,为什么要使用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将如下所示:
public HtmlNode ConvertLink(HtmlNode aTag)
{
var link = HtmlNode.Create("asp:HyperLink");
link.Attributes.Add(...);
return link;
}(未编译,因此可能需要进行一些调整)。
https://stackoverflow.com/questions/1225228
复制相似问题