HTMLAgility Pack - OuterHtml Только для чтения?

html-agility-pack

Вопрос

Эй, я просматриваю все ссылки в моей собственной базе кода и меняю их с <a href="x"> на <asp:HyperLink> по причинам локализации. Я использую HTMLAgilityPack для этого (и других вещей), и я хотел бы просто изменить объект OuterHtml для ссылок, которые я нахожу ... но это только для чтения?

Я новичок в HAP, мне нужно создать новый узел и удалить старый? Кто-нибудь сталкивался с этим?

Благодаря!

Популярные ответы

Зачем использовать пакет гибкости HTML, если вы обрабатываете весь документ как строку. Вместо этого найдите теги и замените их, а затем запишите документ.

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;
}

(не компилируется, поэтому может потребоваться некоторая настройка).



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему