xmlstarlet:插入svg fill属性

问题描述 投票:1回答:1

我正在使用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

欢迎任何想法。谢谢!

svg xpath xml-namespaces xmlstarlet
1个回答
3
投票

使用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

© www.soinside.com 2019 - 2024. All rights reserved.