XMLStarlet - XMLStarlet

XMLStarlet
Оригинальный автор (ы)Дагоберт Михельсен, Ноам Поставский, Михаил Грушинский
изначальный выпуск8 февраля 2005 г.; 15 лет назад (2005-02-08)
Стабильный выпуск
1.6.1 / 9 августа 2014 г.; 6 лет назад (2014-08-09)
Написано вC
Операционная системаUnix-подобный, Windows, CygWin, Mac OS
ТипXML-парсер
ЛицензияЛицензия MIT
Интернет сайтxmlstar.sourceforge.сеть

XMLStarlet представляет собой набор утилит командной строки (инструментарий) для запроса, преобразования, проверки и редактирования XML документы и файлы, используя простой набор команд оболочки, аналогично тому, как это делается с помощью команд UNIX grep, sed, awk, diff, patch, join и т. д.

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

Чтобы запустить утилиту XMLStarlet, вы можете скачать ее с официального сайта и просто набрать 'xml'в командной строке с соответствующими командами или запросами для выполнения (см. #Примеры ниже).

Функции

Набор функций инструментария включает следующие параметры:

  • Проверять или проверять файлы XML (простая проверка правильности, DTD, XSD, RelaxNG)
  • Рассчитать значения XPath выражения в файлах XML (например, текущие суммы и т. д.)
  • Искать в файлах XML совпадения с данным XPath выражения
  • Применение таблиц стилей XSLT к XML-документам (включая поддержку EXSLT и передачу параметров в таблицы стилей)
  • Запрос XML-документов (например, запрос значения некоторых элементов атрибутов, сортировка и т. Д.)
  • Изменение или редактирование XML-документов (например, удаление некоторых элементов)
  • Форматировать или "украсить" XML-документы (например, изменить отступ и т. Д.)
  • Получение XML-документов с использованием URL-адресов http: // или ftp: //
  • Просмотр древовидной структуры XML-документов (аналогично команде ls для каталогов)
  • Включите один XML-документ в другой с помощью XInclude
  • Канонизация XML c14n
  • Экранировать / отменять экранирование специальных символов XML во входном тексте
  • Распечатать каталог как XML-документ
  • Преобразование XML в формат PYX (на основе ESIS - ISO 8879 ), наоборот.

Утилита командной строки XMLStarlet написана на C и использует libxml2 и libxslt. Реализация широкого выбора опций для утилиты XMLStarlet стала возможной только благодаря богатому набору функций обеих библиотек: libxml2 и libxslt. XMLStarlet статически связан как с libxml2, так и с libxslt, поэтому обычно все, что вам нужно для обработки XML-документов, - это один исполняемый файл.

XMLStarlet - бесплатное программное обеспечение с открытым исходным кодом, выпущенное под Лицензия MIT который позволяет бесплатно использовать и распространять как для коммерческих, так и для некоммерческих проектов.

Примеры

Рассмотрим следующий пример XML-документа xmlfile1.xml:

<?xml version="1.0" encoding="utf-8"?><wikimedia>  <projects>    <проект имя =«Википедия» запуск ="2001-01-05">      <editions>        <издание язык ="Английский">en.wikipedia.org</edition>        <издание язык ="Немецкий">de.wikipedia.org</edition>        <издание язык ="Французский">fr.wikipedia.org</edition>        <издание язык ="Польский">pl.wikipedia.org</edition>        <издание язык ="Испанский">es.wikipedia.org</edition>      </editions>    </project>    <проект имя =«Викисловарь» запуск ="2002-12-12">      <editions>        <издание язык ="Английский">en.wiktionary.org</edition>        <издание язык ="Французский">fr.wiktionary.org</edition>        <издание язык ="Вьетнамский">vi.wiktionary.org</edition>        <издание язык ="Турецкий">tr.wiktionary.org</edition>        <издание язык ="Испанский">es.wiktionary.org</edition>      </editions>    </project>    <проект имя ="Викиликс" запуск ="2006-10-04">     <editions>        <издание язык ="Английский">en.wikileaks.org</edition>     </editions>    </project>  </projects></wikimedia>

В командной строке следующие пять XPath запросы выполняются в указанном выше XML-файле xmlfile1.xml.

  • Пример 1. Выражение XPath для выбора всех атрибутов имени для всех проектов.
$ xml sel -t -v "// Викимедиа / проекты / проект / @ имя" xmlfile1.xmlВикипедияВикисловарьWikileaks
  • Пример 2. Выражение XPath для выбора всех атрибутов последнего проекта Викимедиа.
$ xml sel -t -v "/ wikimedia / projects / project [last ()] / @ *" xmlfile1.xmlWikileaks2006-10-04
  • Пример 3: Выражение XPath для выбора адресов всех редакций Викисловаря (текст всех элементов редакции, которые существуют в элементе проекта с атрибутом имени Викисловаря).
$ xml sel -t -v "/ wikimedia / projects / project [@ name = 'Wiktionary'] / editions / edition" xmlfile1.xmlen.wiktionary.orgfr.wiktionary.orgvi.wiktionary.orgtr.wiktionary.orges.wiktionary.org
  • Пример 4: выражение XPath для выбора адресов всех выпусков Викисловаря Викимедиа, которые имеют языки, отличные от турецкого и испанского (все это НЕ турецкий и не испанский).
$ xml sel -t -v "/ wikimedia / projects / project [@ name = 'Wiktionary'] / editions / edition [@language! = 'Turkish' and @language! = 'Spanish']» xmlfile1.xmlen.wiktionary.orgfr.wiktionary.orgvi.wiktionary.org
  • Пример 5: Выражение XPath для выбора всех атрибутов редакций, позиция которых больше или равна 3 в списке редакций.
$ xml sel -t -v "/ wikimedia / projects / project / editions / edition [position ()> = 3] / @ *" xmlfile1.xmlФранцузскийПольскийиспанскийвьетнамскийтурецкийиспанский

XML-документ можно проверить по схеме XSD, сохраненной в файле xsdfile.xsd, следующим образом:

$ xml val -e -s xsdfile.xsd xmlfile1.xmlxmlfile1.xml - действителен

Смотрите также

  • XML (Extensible Markup Language) - это язык разметки, который определяет набор правил для кодирования документов в формате, который удобен для чтения человеком и компьютером.
  • XPath (XML Path Language) - это язык запросов для выбора узлов из XML-документа.
  • XSLT (Extensible Stylesheet Language Transformations) - это язык для преобразования XML-документов в другие XML-документы или другие форматы, такие как HTML для веб-страниц, простой текст и т. Д.
  • Определение типа документа (DTD) определяет юридические строительные блоки XML-документа.

Примечания

внешняя ссылка