我想替换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会做什么。
答案 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