xmlstarlet如何根据兄弟节点DisplayName值修改对应IsLoadFromLocalData值
正确执行命令
xmlstarlet ed --inplace -u "/Products/Product[DisplayName='IncognitoMode']/IsLoadFromLocalData" -v "false" file.xml
参数说明
ed:xmlstarlet的编辑模式指令,用于修改XML文件内容--inplace:直接修改原文件,无需额外生成新的输出文件-u:更新节点值的指令,后接目标节点的XPath路径"/Products/Product[DisplayName='IncognitoMode']/IsLoadFromLocalData":精准定位目标节点的XPath表达式,其中[DisplayName='IncognitoMode']是过滤条件,仅匹配子节点DisplayName值为IncognitoMode的Product节点,再定位其下的IsLoadFromLocalData节点-v "false":将目标节点的值设置为false
修改验证
执行完修改命令后,可运行以下命令确认修改结果:
xmlstarlet sel -t -c "/Products/Product[DisplayName='IncognitoMode']/IsLoadFromLocalData" file.xml
正常输出应为:
<IsLoadFromLocalData>false</IsLoadFromLocalData>
内容的提问来源于stack exchange,提问作者Ballon Ura
相关产品推荐
相关产品推荐

