在xml文件中查找和替换

时间:2014-06-26 20:27:12

标签: xml perl awk sed

我想替换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

将值从true更改为false

有什么建议吗? sed / awk / perl会做什么。

2 个答案:

答案 0 :(得分:1)

你可以通过awk

来做到这一点
awk '/PropertyName=\"ABC\"/{print; getline; sub(/true/,"false")}1' file

答案 1 :(得分:1)

您可以使用xmlstarlet

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