The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Обработка XML данных в командной строке при помощи xmlstarlet
В составе Debian, Ubuntu и других Linux дистрибутивах можно найти пакет
xmlstarlet (http://xmlstar.sourceforge.net/),
представляющий собой набор утилит командной строки для преобразования, выборки
данных и проверки XML документов.
Реализует для работы с XML функции похожие на утилиты grep, tr, sed, awk, diff, patch, join и т.п.,
что очень удобно для разбора XML документов в скриптах.

Например, для парсинга RSS и вывода заголовков можно использовать:

   curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v title -n

вывод из RSS ссылки и заголовка, разделенные символом "|"

   curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v link -o "|" -v title -n

Для ленты в формате Atom, с построчным разделением URL от заголовка:
   
   curl url_rss | sed 's/xmlns=/_xmlns=/'| xmlstarlet sel -t -m /feed/entry -v link/@href -n -v title -n


Опция -t информирует о начале задания шаблона, определенного далее идущими директивами.
-m указывает, параметры XPath выборки, в нашем случае, обработка всех <item>
внутри <channe> внутри <rss>.
-v - определяем содержимое какого поля выводить.
-n - инициирует вывод символа перевода строки,
-o - позволяет вывести произвольный текст.

Быстрый просмотр текста в ODT файле

   unzip -p document.odt content.xml | xmlstarlet sel -N text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" \
   -T -t -m '//text:p' -v . -n

Построить список изображений, используемых в заданной странице:

   cat test.html| xmlstarlet sel --html -t -m "//img" -v "@src" -n

Примеры использования xmlstarlet для различных ситуаций можно найти в
директории /usr/share/doc/xmlstarlet/examples
 
31.03.2009
Раздел:    Корень / Пользователю / Работа в консоли

Обсуждение [ RSS ]
 
  • 1, vitek, 11:49, 31/03/2009 [ответить] [смотреть все]
  • +/
    спасибо... не знал
     
  • 2, Tikhon, 13:30, 01/04/2009 [ответить] [смотреть все]
  • +/
    А почему не работает XPath выборка при заданном непустым xmlns? (sed 's/xmlns=/_xmlns=/')
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList