Jump to content

XMLStarlet

XMLStarlet
Оригинальный автор(ы) Dagobert Michelsen, Noam Postavsky, Mikhail Grushinskiy
Первоначальный выпуск 8 февраля 2005 г .; 19 лет назад ( 08.02.2005 )
Стабильная версия
1.6.1 [ 1 ]  Отредактируйте это в Викиданных / 9 августа 2014 г .; 10 лет назад ( 9 августа 2014 )
Репозиторий
Написано в С
Операционная система Unix-подобный , Windows, CygWin, Mac OS
Тип XML- парсер
Лицензия МОЯ лицензия
Веб-сайт xmlstar .sourceforge .сеть

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

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

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

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

  • Проверка или проверка 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>
    <project name="Wikipedia" launch="2001-01-05">
      <editions>
        <edition language="English">en.wikipedia.org</edition>
        <edition language="German">de.wikipedia.org</edition>
        <edition language="French">fr.wikipedia.org</edition>
        <edition language="Polish">pl.wikipedia.org</edition>
        <edition language="Spanish">es.wikipedia.org</edition>
      </editions>
    </project>
    <project name="Wiktionary" launch="2002-12-12">
      <editions>
        <edition language="English">en.wiktionary.org</edition>
        <edition language="French">fr.wiktionary.org</edition>
        <edition language="Vietnamese">vi.wiktionary.org</edition>
        <edition language="Turkish">tr.wiktionary.org</edition>
        <edition language="Spanish">es.wiktionary.org</edition>
      </editions>
    </project>
    <project name="Wikiversity" launch="2006-10-04">
     <editions>
        <edition language="English">en.wikiversity.org</edition>
     </editions>
    </project>
  </projects>
</wikimedia>

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

  • Пример 1. Выражение XPath для выбора всех атрибутов имени для всех проектов.
$ xmlstarlet sel -t -v "//wikimedia/projects/project/@name" xmlfile1.xml
Wikipedia
Wiktionary
Wikiversity
  • Пример 2: выражение XPath для выбора всех атрибутов последнего проекта Викимедиа.
$ xmlstarlet sel -t -v "/wikimedia/projects/project[last()]/@*" xmlfile1.xml
Wikiversity
2006-10-04
  • Пример 3. Выражение XPath для выбора адресов всех выпусков Викисловаря (текст всех элементов издания, которые существуют в элементе проекта с атрибутом имени Викисловаря).
$ xmlstarlet sel -t -v "/wikimedia/projects/project[@name='Wiktionary']/editions/edition" xmlfile1.xml
en.wiktionary.org
fr.wiktionary.org
vi.wiktionary.org
tr.wiktionary.org
es.wiktionary.org
  • Пример 4: выражение XPath для выбора адресов всех изданий Викисловаря Викимедиа, языки которых отличаются от турецкого и испанского (все НЕ турецкие и не испанские).
$ xmlstarlet sel -t -v "/wikimedia/projects/project[@name='Wiktionary']/editions/edition[@language!='Turkish' and @language!='Spanish']" xmlfile1.xml
en.wiktionary.org
fr.wiktionary.org
vi.wiktionary.org
  • Пример 5. Выражение XPath для выбора всех атрибутов выпусков, позиция которых больше или равна 3 в списке выпусков.
$ xmlstarlet sel -t -v "/wikimedia/projects/project/editions/edition[position() >= 3]/@*" xmlfile1.xml
French
Polish
Spanish
Vietnamese
Turkish
Spanish

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

$ xmlstarlet val -e -s xsdfile.xsd xmlfile1.xml
xmlfile1.xml - valid

См. также

[ редактировать ]
  • XML (расширяемый язык разметки) — это язык разметки, определяющий набор правил для кодирования документов в формате, читаемом как человеком, так и машиной.
  • XPath (язык путей XML) — это язык запросов для выбора узлов из XML-документа.
  • XSLT (преобразования расширяемого языка таблиц стилей) — это язык преобразования XML-документов в другие XML-документы или другие форматы, такие как HTML для веб-страниц, обычный текст и т. д.
  • Определение типа документа (DTD) определяет допустимые строительные блоки XML-документа.

Примечания

[ редактировать ]
[ редактировать ]
  1. ^ «Набор инструментов XML для командной строки XMLStarlet — просмотрите /xmlstarlet/1.6.1 на SourceForge.net» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5cf534242ab4b5f63295b7489904d75a__1709660220
URL1:https://arc.ask3.ru/arc/aa/5c/5a/5cf534242ab4b5f63295b7489904d75a.html
Заголовок, (Title) документа по адресу, URL1:
XMLStarlet - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)