Comment gérer ParseErrors dans Html Agility Pack

c# html html-agility-pack

Question

J'ai donc une application qui collecte les sections d'en-tête et de pied de page d'un document HTML et les insère dans une page Web préexistante. Les deux sections sont déjà encapsulées dans des balises div. Par conséquent, le contenu des zones ne doit pas contenir de balises HTML / body.

Cela étant dit, j'aimerais vérifier les balises qui ne sont pas fermées et les fermer par programme. Je suis très nouveau dans Html Agility Pack et je ne sais pas comment accomplir ce que je veux. Voici le code que j'ai pu déduire à partir de recherches Google.

    private bool RepairHtml(string htmlText)
    {
        var htmlDoc = new HtmlDocument();
        htmlDoc.OptionFixNestedTags = true;
        htmlDoc.LoadHtml(htmlText);
        var parseErrors = htmlDoc.ParseErrors;

        if (parseErrors != null)
        {
           foreach (var htmlParseError in parseErrors)
           {
              switch (htmlParseError.Code)
              {
                 case: HtmlParseErrorCode.TagNotClosed:
                    // Not sure what to do here
                    break;
              }
           }
        }
     }

Comment sélectionner le tag qui a généré une erreur et le fermer?

Merci d'avance pour votre aide!

Réponse acceptée

Vous pouvez utiliser document.OptionFixNestedTags = true; pour les réparer automatiquement.

Vous pouvez vérifier ici la liste des erreurs du tableau.

Vous pouvez utiliser htmlParseError.Line pour voir la cause de l'erreur. J'espère que cela pourra aider



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow