come sostituire
tag con
tag usando HtmlAgilityPack?

c# html-agility-pack

Domanda

Piuttosto strano! Quando carico e sostituisco con una stringa vuota usando

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

Questo funziona bene e <tbody> sarà rimosso.

Allo stesso modo quando provo a sostituire <br> con <br/> utilizzando,

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

Non funziona :(

anche provato,

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

La funzione replace () di HTMLAgilityPack non funziona per i tag di chiusura automatica?

Risposta accettata

document.OptionWriteEmptyNodes = true;

Farà il trucco per te!


Risposta popolare

Non devi sostituire manualmente <br> per <br/> manualmente, se hai bisogno di chiudere il nodo, basta istruire la libreria per farlo, ad esempio:

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

produrrà questo:

<br>

e questo

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

produrrà questo:

<br />


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché