2014-06-26 120 views
0

我想替換xml文件中的特定值。找到並替換爲xml文件

我的測試XML是如下 -

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

我想從真正只爲PropertyName=ABC

任何建議值更改爲假? sed/awk/perl什麼都可以。

回答

1

你可以通過AWK做到這一點,

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

謝謝,但沒有奏效。 :( –

+0

怎麼樣?它適用於我 –

+0

是的,它對我有用:)謝謝 –

1

您可以使用xmlstarlet

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