HTMLAgilityPack ne conserve pas les balises vides d’origine

Si j’ai des balises vides comme celle-ci

 

Le pack d’agilité leur permet de ressembler

  

Y a-t-il quelque chose à faire pour annuler ce comportement?

Essayez ceci avant de sauvegarder:

 if (HtmlNode.ElementsFlags.ContainsKey("td")) { HtmlNode.ElementsFlags["td"] = HtmlElementFlag.Empty | HtmlElementFlag.Closed; } else { HtmlNode.ElementsFlags.Add("td", HtmlElementFlag.Empty | HtmlElementFlag.Closed); } 

Cela change le comportement de tous les éléments td qui peuvent ne pas être ce que vous voulez. Je ne sais pas comment faire cela par nœud.

Définissez la propriété OptionWriteEmptyNodes sur true sur votre document HtmlDocument .

Bien que la réponse de @Corbin March ne fonctionne pas comme prévu, c’est la seule que j’ai trouvée qui se rapproche. Le problème est que HAP effectue toujours des corrections supplémentaires, ce qui en fait un problème.

Du code original:

  

En définissant les ElementFlags comme ci-dessus, la balise d’élément de fermeture n’est en effet pas créée, mais le “/” final est supprimé. Cela pourrait être un problème selon votre scénario, c’était pour moi. Le fragment d’origine devient: