Como alterar valores no arquivo XML

1

Eu tenho um arquivo XML como abaixo. Eu quero alterar os valores no local de valor padrão de cada nome de argumento usando um script de shell como:

onde nome do argumento = protocolo e valor padrão = tcp,
onde nome do argumento = porta e valor padrão = 7223,
onde nome do argumento = nome de usuário e valor padrão = teste,

Exemplo:

<task-arguments>
    <argument name="protocol" is-required="false" default-value="ssl"/>
    <argument name="port" is-required="true" default-value="7222"/>
    <argument name="username" is-required="true" default-value="admin"/>
</task-arguments>
    
por Sureshchandra Jarugula 07.07.2016 / 14:27

1 resposta

4

Com xmlstarlet:

xmlstarlet ed --inplace -u '/task-arguments/argument[@name="protocol"]/@default-value' -x 'string("tcp")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="port"]/@default-value' -x 'string("7223")' file.xml
xmlstarlet ed --inplace -u '/task-arguments/argument[@name="username"]/@default-value' -x 'string("test")' file.xml
    
por 7171u 07.07.2016 / 15:42