Zainab_m Ответов: 3

Синтаксический анализ HTML - файла в VB.NET


Привет,

У меня есть HTML-файл, который я пытаюсь разобрать с помощью VB.net прочитав весь файл и получив все значения в тегах.
Он находится в следующем формате:
HTML
голова
ТД
/ТД
/голова
тело
/тело
/формат HTML

Что я уже пробовал:

Я использовал XmlTextReader и .Read() для циклического просмотра файла, но проблема, с которой я сталкиваюсь, заключается в том, что функция .Read() выходит из файла после первого появления конечного тега.
Как я могу прочитать весь файл целиком? Я даже пытался .Но это не работает.

Спасибо.

3 Ответов

Рейтинг:
2

Maciej Los

Ну, строго говоря, html-файл-это вовсе не xml. Это может выглядеть очень похоже на xml из-за использования тегов, но это не так. Видеть: XML - Википедия[^]

Если вы хотите конвертировать html-файл в xml-файл, я бы предложил использовать SgmlReader[^]. SgmlReader-это библиотека .NET, которая удобна для преобразования содержимого SGML (например, HTML и OFX) в хорошо сформированный XML с помощью XmlReader, XmlDocument, XDocument или XPathDocument. Он работает на Windows и Linux с использованием Mono.

Если вы хотите получать только данные между тегами, вам нужно создать "html-парсер". Для получения предложений, пожалуйста, смотрите: Гугл[^]


Zainab_m

Я только хочу получить данные между тегами, и я обнаружил, что XmlTextReader id работает нормально со мной, я просто хочу знать, как решить эту проблему.
Я использовал метод чтения в цикле While:
В То Время Как Читатель.Читать()

Конец Пока

Рейтинг:
2

CPallini

Это правильное поведение человека. Read метод, см. документация[^].
Для того чтобы обработать весь файл целиком, вы должны итеративно вызвать Read метод (см. Пример кода в документации).


Zainab_m

Да, я вызываю метод Read итеративно через цикл While, все еще выходя после первого конечного тега.

В то время как читатель.Читать()

Конец Пока

Рейтинг:
1

MadMyche

Хотя методы XML можно использовать в HTML-документах, HTML-документы обычно не являются допустимыми XML.

То, что вы можете попробовать использовать, - это библиотека, специально созданная для синтаксического анализа HTML-документов, таких как HTML Agility Pack Это широко используемый пакет и, следовательно, множество документации и примеров кода.
Пакет Html Agility pack | пакет Html Agility Pack[^]

Кроме того... предоставленный вами "контур" не является допустимым HTML; TD должен быть внутри TR, который должен быть в таблице, которая должна быть в теле документа.


Zainab_m

Я знаю, что HTML-это не XML, но если методы XML могут прекрасно работать с HTML, почему бы не использовать его?
HAP написан на C#, как я могу использовать его в VB.net-что?

MadMyche

Вы можете делать все, что хотите; но если попросите код работать над чем-то, для чего он не был предназначен, то вы можете винить только себя, ножи предназначены для резки, а не для поворота винтов.

Что касается HAP, написанного на C#, то это действительно не имеет значения, так как это сетевая библиотека. Добавьте ссылку на проект в свое решение, и тогда вам будут доступны все его общедоступные методы.

Вы пробовали искать VB в их базе знаний?
В HTML ловкость обновления базы знаний | помечено В. Б.-Нет[^]