xmlstarlet:插入 svg 填充属性
xmlstarlet: insert svg fill attribute
我正在使用 xmlstarlet
编写一个批处理文件来创建彩色版本的超棒 SVG 字体文件。
这是一个输入 SVG 文件的示例:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path d="PATH DATA..."/>
</svg>
我想向 path
元素添加一个 fill
属性。
但是,我的 xmlstarlet
命令没有插入新的 fill
属性,我只是将格式化的输入文件作为输出:
xmlstarlet ed -i 'svg/path' -t 'attr' -n 'fill' -v 'purple' input_file.svg
欢迎任何想法。谢谢!
使用 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
我正在使用 xmlstarlet
编写一个批处理文件来创建彩色版本的超棒 SVG 字体文件。
这是一个输入 SVG 文件的示例:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path d="PATH DATA..."/>
</svg>
我想向 path
元素添加一个 fill
属性。
但是,我的 xmlstarlet
命令没有插入新的 fill
属性,我只是将格式化的输入文件作为输出:
xmlstarlet ed -i 'svg/path' -t 'attr' -n 'fill' -v 'purple' input_file.svg
欢迎任何想法。谢谢!
使用 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