xmlstarlet: вставить атрибут заполнения SVG - PullRequest
1 голос
/ 09 марта 2019

Я пишу командный файл, используя xmlstarlet для создания цветных версий шрифтов, удивительные файлы SVG.

Вот пример входного файла SVG:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
    <path d="PATH DATA..."/>
</svg>

И я хочудобавить атрибут fill к элементу path.

Однако моя команда xmlstarlet не вставляет новый атрибут fill, и я просто получаю отформатированный входной файл в качестве вывода:

xmlstarlet ed -i 'svg/path' -t 'attr' -n 'fill' -v 'purple' input_file.svg

Любые идеи приветствуются.Спасибо!

1 Ответ

3 голосов
/ 09 марта 2019

С xmlstarlet и использованием пространства имен:

xmlstarlet edit --omit-decl \
                -N x=http://www.w3.org/2000/svg \
                --insert '//x:svg/x:path' -t attr -n "fill" -v "#ffffff" file.xml

Вывод:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
  <path d="PATH DATA ..." fill="#ffffff"/>
</svg>

См .: xmlstarlet edit

...