Как обрабатывать ParseErrors в Html Agility Pack

c# html html-agility-pack

Вопрос

Поэтому у меня есть приложение, которое собирает разделы заголовка и нижнего колонтитула документа HTML и вставляет их в существующую ранее веб-страницу. Оба раздела уже завернуты в теги div, поэтому в содержимом в ящиках не должно быть тегов html / body.

При этом я хотел бы проверить теги, которые не закрыты и программно закрыть их. Я очень новичок в Html Agility Pack, и я не уверен, как выполнить то, что я хочу. Вот код, который я смог сделать, основываясь на результатах поиска 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;
              }
           }
        }
     }

Как выбрать тег, который сгенерировал ошибку и закрыть ее?

Заранее спасибо за вашу помощь!

Принятый ответ

Вы можете использовать document.OptionFixNestedTags = true; чтобы исправить их автоматически.

Вы можете проверить здесь для списка массива ошибок.

Вы можете использовать htmlParseError.Line, чтобы узнать, что вызывает ошибку. надеюсь, это поможет



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow