【发布时间】:2017-10-13 17:12:20
【问题描述】:
我正在尝试使用xmlstarlet 在 xml 文件中编辑元素的值,但编辑没有效果。不显示任何错误,也不显示任何成功消息。
我已经使用在线 xpath tester 测试了我的 xpath 查询。
这是我的 xml 文件:
<workflow scriptid="customworkflow_sktest01">
<runasadmin>F</runasadmin>
<workflowstates>
<workflowstate scriptid="workflowstate15154">
<description></description>
<workflowactions triggertype="ONENTRY">
<setfieldvalueaction scriptid="workflowaction88038">
<valuejoinfield></valuejoinfield>
<valueselect>24506</valueselect>
<valuetext></valuetext>
</setfieldvalueaction>
</workflowactions>
</workflowstate>
</workflowstates>
</workflow>
这是我与 xmlstarlet 一起使用的命令:
C:\...\xmlstarlet-1.6.1-win32\xmlstarlet-1.6.1>xml edit -P --update "/workflow/workflowstates/workflowstate/workflowactions/setfieldvalueaction[@scriptid="workflowaction88038"]/valueselect" -v 1234 "C:\...\customworkflow_sktest01.xml"
当我运行该命令时,xmlstarlet 只会回显未修改的源 xml。
解决方案更新:
以下是工作命令:
C:\...\xmlstarlet-1.6.1-win32\xmlstarlet-1.6.1>xml edit -P --update "/workflow/workflowstates/workflowstate/workflowactions/setfieldvalueaction[@scriptid='workflowaction88038']/valueselect" -v 1234 "C:\...\customworkflow_sktest01.xml"
【问题讨论】:
标签: xml windows xpath xmlstarlet quoting