2014-06-26 4 views
0

Je souhaite remplacer une valeur spécifique dans un fichier XML.Rechercher et remplacer dans le fichier xml

Mon XML de test est comme ci-dessous -

 <Field Name="ABC" IsArray="false" IsLocked="false"> 
    <Description>THIS IS FOR ABC VALUE</Description> 
    <Comment></Comment> 
    <PropertyList> 
      <Property Name="ABC" Type="Boolean"> 
      <DefaultValue>false</DefaultValue> 
      </Property> 
    </PropertyList> 
    <PropertyValueList> 
      <PropertyValue PropertyName="ABC"> 
        <Value>true</Value> 
      </PropertyValue> 
    </PropertyValueList> 
</Field> 

Je souhaite modifier la valeur de true à false seulement pour PropertyName=ABC

Toutes les suggestions? Sed/awk/perl ferait quoi que ce soit.

Répondre

1

Vous pouvez le faire à travers awk,

awk '/PropertyName=\"ABC\"/{print; getline; sub(/true/,"false")}1' file 
+0

Merci, mais cela n'a pas fonctionné. : –

+0

comment ça marche pour moi –

+0

Oui, cela a fonctionné pour moi :) Merci –

1

Vous pouvez utiliser xmlstarlet:

xmlstarlet ed -u "/Field/PropertyValueList/PropertyValue/Value/text()" -v "false" test.xml > result.xml 
Questions connexes