HTMLAgility Pack - OuterHtml en lecture seule?

html-agility-pack

Question

Bonjour, je parcours tous les liens de ma propre base de code et les <a href="x"> de <a href="x"> à <asp:HyperLink> pour des raisons de localisation. J'utilise le HTMLAgilityPack pour cela (et d'autres choses) et j'aimerais changer l'objet OuterHtml pour les liens que je trouve..mais c'est en lecture seule?

Je suis nouveau sur HAP. Dois-je créer un nouveau noeud et supprimer l'ancien? Quelqu'un at-il couru dans cela?

Merci!

Réponse populaire

Pourquoi utiliser le pack d'agilité HTML si vous traitez l'ensemble du document comme une chaîne. Recherchez plutôt les balises et remplacez-les, puis écrivez le document.

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();

Et votre ConvertLink ressemblerait à ceci:

public HtmlNode ConvertLink(HtmlNode aTag)
{
    var link = HtmlNode.Create("asp:HyperLink");
    link.Attributes.Add(...);
    return link;
}

(non compilé, donc peut-être besoin de quelques ajustements).



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi