我的xmlstarlet更新命令有什么问题?

时间:2017-10-13 17:12:21

标签: xml windows xpath xmlstarlet quoting

我正在尝试使用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"

1 个答案:

答案 0 :(得分:2)

我建议更换

"workflowaction88038"

通过

'workflowaction88038'