首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTMLAgility包- OuterHtml只读?

HTMLAgility包- OuterHtml只读?
EN

Stack Overflow用户
提问于 2009-08-04 00:15:07
回答 2查看 2.2K关注 0票数 1

嘿,我正在遍历我自己的代码库中的所有链接,出于本地化的原因将它们从<a href="x">更改为<asp:HyperLink>的。我使用HTMLAgilityPack来实现这一点(以及其他事情),我想只更改链接的OuterHtml对象,我find..but它是只读的?

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

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2009-08-04 19:08:39

我最终使用了..。

代码语言:javascript
复制
node.ParentNode.ReplaceChild(HtmlNode.CreateNode(HrefToAspLinkText(node.OuterHtml)), node)

嗯。

票数 1
EN

Stack Overflow用户

发布于 2012-05-02 21:23:23

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

代码语言:javascript
复制
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将如下所示:

代码语言:javascript
复制
public HtmlNode ConvertLink(HtmlNode aTag)
{
    var link = HtmlNode.Create("asp:HyperLink");
    link.Attributes.Add(...);
    return link;
}

(未编译,因此可能需要进行一些调整)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1225228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档