Язык XML, как и множества в Паскале , имеет намного более строгий и регламентированный синтаксис по сравнению с языком HTML. В языке XML не допускается применение непарных тегов, т.е. все теги должны явно обозначать начало и конец разметки. Имена тегов и атрибутов чувствительны к регистру (в коде HTML эти имена могут быть записаны в любом регистре), а все значения атрибутов должны быть заключены в двойные кавычки. Если элемент разметки пуст, иными словами, если между начальным и конечным тегами ничего нет, язык XML позволяет заменить эту пару тегов так называемым тегом “пустого элемента”. Он представляет собой начальный тег, который начинается со знака “меньше”, <, и имени тега, tagname, и оканчивается символами />. В качестве иллюстрации ниже приведены фрагменты кода XML, имеющие одинаковый смысл.
<img src="/icons/arrow.gif" alt="arrow"></img>
<img src=fl/icons/arrow.gif" alt="arrown />
Применение модуля HTML::Parser.
Модуль HTML::Parser работает под управлением событий. Он выполняет синтаксический анализ документа HTML с самого начала и последовательно проходит по тегам и подтегам, пока не будет достигнут конец документа. Для работы с этим модулем необходимо установить обработчики событий, интересующих программиста и возникающих в процессе обработки документа, таких как появление начального тега. Обработчик будет вызываться при возникновении каждого ожидаемого события.
Прежде чем приступить к изучению модуля HTML::Parser, рассмотрим несложный пример. Сценарий print_links.pl выполняет синтаксический анализ документа HTML, который указан в командной строке или поступил из стандартного устройства ввода, извлекает информацию обо всех ссылках и изображениях, а затем вы водит URL этих объектов.