.
Aurium.Colivre.Coop.br Esse site é Legal Demais para Internet Explorer

Aurium :: XmlStarlet

Últimas blogadas:

%HEADLINES{"http://softwarelivre.org/aurium/blog/feed" refresh="600" header="SoftwareLivre.org" limit="15" format=" * $title" }% %HEADLINES{"http://cirandas.net/aurium/blog/feed" refresh="600" header="Cirandas.net" limit="15" format=" * $title" }%



XmlStarlet - aplicação com interface de linha de comando para manipulação de XML.

Testes preliminares

SVG de teste:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="300" height="300">
  <rect
     id="rect"
     style="fill:#080;stroke:#000;stroke-width:2"
     width="200" height="150" x="30" y="30" ry="20" />
  <circle
     id="bola"
     style="fill:#A00;stroke:#000;stroke-width:2"
     cx="180" cy="180" r="100" />
</svg>

Coletando um atributo style e substituindo o valor:
# Coletando o conteúdo do atributo estilo:
s=$( xmlstarlet sel -t -v "//::*[@id='bola']/@style" desenho.svg )
# isso:  //::*[@id='bola']/@style
# é simplicação disso:  descendant::*[attribute::id='bola']/attribute::style

# Modificando o valor de preenchimento:
s=$( echo "$s" | sed --regexp-extended 's/(^|;)fill:[^;]*(;|$)/\1fill:#08B\2/' )

# Inserindo valor modificado:
xmlstarlet ed -u "//*[@id='bola']/@style" -v "$s" desenho.svg > desenho2.svg

DiggThis

Copyright © 2004 - 2019 Aurélio A. Heckert
Conteúdo licenciado sob Creative Commons by-nc-sa