ГлавнаяОперационные системыLinuxКак манипулировать файлами HTML и XML из командной строки

Как манипулировать файлами HTML и XML из командной строки

html-up-close-200pxКонсорциум World Wide Web (W3C) предлагает ряд бесплатных инструментов, помогающих правильно создавать и обрабатывать файлы HTML и XML. HTML-XML-пакет — это набор простых утилит для работы с файлами HTML и XML из командной строки. Он доступен для многих различных дистрибутивов Linux и может быть полезен тем, кому приходится регулярно обрабатывать файлы HTML или XML.

Чтобы установить пакет в Ubuntu, используйте:

sudo apt-get install html-xml-utils

В этом пакете 31 инструмент, вот краткое описание того, что они могут:

  • cexport – создать заголовочный файл экспортированных объявлений из файла C
  • hxaddid – добавить идентификаторы к выбранным элементам
  • hxcite — заменить библиографические ссылки гиперссылками.
  • hxcite-mkbib- расширить ссылки и создать библиографию
  • hxcopy — копирование HTML-файла с сохранением относительных ссылок.
  • hxcount – подсчет элементов и атрибутов в файлах HTML или XML
  • hxextract – извлечь выбранные элементы
  • hxclean — применить эвристику для исправления HTML-файла.
  • hxprune – удалить отмеченные элементы из HTML-файла
  • hxincl — развернуть включенные файлы HTML или XML
  • hxindex – создать индекс, отсортированный по алфавиту
  • hxmkbib – создать библиографию на основе шаблона
  • hxmultitoc — создание оглавления для набора HTML-файлов.
  • hxname2id — переместить некоторые ID= или NAME= из элементов A в их родительские элементы.
  • hxnormalize – красивая печать HTML-файла
  • hxnum – нумерация заголовков разделов в HTML-файле.
  • hxpipe — преобразование XML в формат, который легче анализировать с помощью Perl или AWK.
  • hxprintlinks — пронумеровать ссылки и добавить таблицу URL-адресов в конце HTML-файла.
  • hxremove — удалить выбранные элементы из XML-файла
  • hxtabletrans — транспонировать таблицу HTML или XHTML.
  • hxtoc – вставить оглавление в HTML-файл
  • hxuncdata – замена разделов CDATA символьными сущностями
  • hxunent – ​​заменяет предопределенные символы HTML на UTF-8.
  • hxunpipe — преобразовать вывод канала обратно в формат XML
  • hxunxmlns – замените «глобальные имена» префиксами пространства имен XML
  • hxwls – список ссылок в HTML-файле
  • hxxmlns – замените префиксы пространства имен XML на «глобальные имена»
  • asc2xml, xml2asc — преобразование между UTF8 и объектами
  • hxref – создание перекрестных ссылок
  • hxselect- извлекает элементы, соответствующие селектору (CSS)

Чтобы познакомить вас с возможностями этого набора инструментов, вот несколько примеров использования некоторых команд.

Команда «hxnormalize» переформатирует HTML-файл, чтобы его было легко читать и он был хорошо отформатирован. Чтобы протестировать эту команду, мы создадим уродливый HTML. Выделите и скопируйте следующие строки и вставьте их прямо в окно терминала.

cat > test.html <p>hello
__EOF__
</p>

При этом будет создан файл с именем test.html. В HTML отсутствуют некоторые закрывающие теги, и все оно написано в одну строку. Команда hxnormalizeпереформатирует файл и запишет красивую версию на стандартный вывод (stdout). Вот как вы запускаете команду:

hxnormalize -e test.html

Флаг «-e» указывает hxnormalize вставить недостающие закрывающие теги.

hxnormalize

Вы также можете запустить команду для веб-страницы, заменив «test.html» URL-адресом, например:

hxnormalize http://www.example.com

Команда hxwlsанализирует локальный HTML-файл или веб-сайт и выводит список ссылок в HTML. Например:

hxwls http://www.example.com

Вот первые несколько строк вывода веб-сайта Make Tech Easier:

lxwls

Команда hxtabletransизменяет таблицу так, что строки становятся столбцами, а столбцы — строками.

Давайте создадим HTML-файл с простой таблицей. Выделите и скопируйте следующие строки, а затем вставьте их прямо в окно терминала.

cat > table.html 
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
 
__EOF__

Результатом является файл table.html. В веб-браузере таблица будет выглядеть примерно так:

Джилл Смит 50
Ева Джексон 94

Если вы запустите команду hxtabletrans, она запишет транспонированную таблицу в стандартный вывод. Результаты можно перенаправить в другой файл следующим образом:

hxtabletrans table.html > table2.html

В новом файле table2.html Джилл Смит и Ева Джексон будут показаны столбцами, а не строками, как в оригинале. Итоговая таблица будет примерно такой:

Джилл Ева
Смит

Джексон
50 94

Большинство команд используются аналогично примерам выше, то есть вам нужно указать файл или URL-адрес для обработки, а выходные данные записываются в стандартный вывод. Попробуйте поэкспериментировать с различными командами, они могут оказаться вам полезными.

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

ПОХОЖИЕ СТАТЬИ

Популярные записи