Лучший способ разобрать HTML в XML - PullRequest
3 голосов
/ 31 октября 2010

По сути, в настоящее время у меня есть приложение для iPhone, которое может запрашивать и анализировать XML-файл на моем сервере. Прямо сейчас мне приходится обновлять и загружать свой XML-файл каждое утро вручную, чтобы мои пользователи могли получать обновленную информацию. Я хотел бы автоматизировать этот процесс, который по сути повлечет за собой анализ различных веб-сайтов (NYTimes, iAmBored.com и т. Д.), Вывод соответствующей информации с каждого из этих веб-сайтов в файл XML и загрузку этого файла на мой сервер.

Кто-нибудь знает лучший способ сделать это (парсинг HTML в файл XML). Поскольку я новичок, я не уверен, для каких языков это требуется или как лучше всего это сделать?

Заранее большое спасибо!

Ответы [ 4 ]

1 голос
/ 31 октября 2010

Вы можете попробовать перевести HTML в XHTML (XHTML основан на XML, поэтому это XML с некоторыми правилами, определенными в DTD).

Вы также можете попробовать для непосредственного анализа HTML с помощью синтаксического анализатора SGML (Так как XHTML основан на XML, HTML основан на SGML).

Ссылки предоставлены для вдохновения.

0 голосов
/ 31 октября 2010

alt text TagSoup - Just Keep On Truckin 'alt text

... SAX-совместимый синтаксический анализатор, написанный на Java, который вместо синтаксического анализа правильно сформированили действительный XML, анализирует HTML, как он встречается в дикой природе: плохой, противный и грубый, хотя довольно часто далекий от короткого.

TagSoup предназначен для людей, которым приходится обрабатывать эти вещи, используя некое подобие рационального дизайна приложения.

Предоставляя интерфейс SAX, он позволяет применять стандартные инструменты XML даже к худшему HTML.TagSoup также включает в себя процессор командной строки, который читает файлы HTML и может генерировать либо чистый HTML, либо правильно сформированный XML, близкий к XHTML.

Также, Taggle, TagSoup вC ++, доступно сейчас

0 голосов
/ 31 октября 2010

Можете ли вы получить то, что вам нужно, из каналов RSS / Atom?Это значительно упростит вещи, потому что они представляют собой XML, а не HTML и могут быть проанализированы стандартным синтаксическим анализатором XML.Конечно, описания, встроенные в RSS-каналы, будут HTML, поэтому в зависимости от вашего приложения может быть , когда вам нужно проанализировать HTML.

XSLT - это предметно-ориентированный язык программирования, предназначенный дляобрабатывает XML, но вы также можете использовать любой язык программирования, который включает в себя анализатор XML для этой задачи.

0 голосов
/ 31 октября 2010

Если содержимое, которое нужно очистить, написано на XHTML, вы можете легко использовать язык XSLT для преобразования исходного содержимого в то, что вам нужно, в XML, который вы предоставляете своим пользователям.

В противном случае подойдет любой способ очистки и создания XML, каждый язык программирования поддерживает такие вещи ... но вы можете использовать XPath, чтобы выбрать нужные элементы на странице и затем сохранить их внутри.выходной файл.

...