comment remplacer
tag avec
balise utilisant HtmlAgilityPack?

c# html-agility-pack

Question

Assez étrange! Quand je charge et remplace avec une chaîne vide en utilisant

 var document = new HtmlDocument();
    document.LoadHtml(data); 
    document.DocumentNode.OuterHtml.Replace("<tbody>", "");

Cela fonctionne bien et <tbody> sera supprimé.

Même chose quand j'essaie de remplacer <br> par <br/> utilisant,

document.DocumentNode.OuterHtml.Replace("<br>", "<br/>");

Ça ne marche pas :(

aussi essayé,

 var brTags = document.DocumentNode.SelectNodes("//br");
            if (brTags != null)
            {
                foreach (HtmlNode brTag in brTags)
                {
                    brTag.OuterHtml = "<br/>";
                    // brTag.Name= "br/"; - > Also this one :(
                }
            }

La fonction replace () de HTMLAgilityPack ne fonctionne pas pour les balises à fermeture automatique?

Réponse acceptée

document.OptionWriteEmptyNodes = true;

Fera le tour pour vous!


Réponse populaire

Vous ne devez pas remplacer <br> par <br/> manuellement, si vous devez fermer le nœud, demandez simplement la bibliothèque de le faire, par exemple ceci:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.Save(Console.Out);

affichera ceci:

<br>

et ça

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.OptionWriteEmptyNodes = true;
doc.Save(Console.Out);

affichera ceci:

<br />


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