Come gestire ParseErrors in Html Agility Pack

c# html html-agility-pack

Domanda

Quindi ho un'applicazione che raccoglie le sezioni di intestazione e piè di pagina di un documento HTML e le inserisce in una pagina web preesistente. Entrambe le sezioni sono già racchiuse in tag div in modo che il contenuto all'interno delle caselle non contenga tag html / body.

Detto questo, vorrei verificare i tag che non sono chiusi e chiuderli a livello di programmazione. Sono molto nuovo in Html Agility Pack e non sono sicuro di come realizzare ciò che voglio. Ecco il codice che sono stato in grado di dedurre in base alle ricerche di 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;
              }
           }
        }
     }

Come faccio a selezionare il tag che ha generato un errore e chiuderlo?

Grazie in anticipo per il vostro aiuto!

Risposta accettata

Puoi usare document.OptionFixNestedTags = true; per risolverli automaticamente.

Puoi controllare qui per elenco di errori.

È possibile utilizzare htmlParseError.Line per vedere cosa causa l'errore. Spero possa aiutare




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é