Shell脚本使用xmllint解析xml

时间:2018-10-09 21:28:17

标签: xml shell parsing

我正在尝试解析下面的xml数据

<workflowRun _class="org.jenkinsci.plugins.workflow.job.WorkflowRun">
<action _class="hudson.model.ParametersAction">...</action>
<action _class="hudson.model.CauseAction">...</action>
<action/>
<action _class="jenkins.metrics.impl.TimeInQueueAction"/>
<action/>
<action _class="hudson.plugins.git.util.BuildData">
<buildsByBranchName>...</buildsByBranchName>
<lastBuiltRevision>
<SHA1>egA2kiRCmo7D3Wm9BMRC8Cxblthy5rNm</SHA1>
<branch>
<SHA1>egA2kiRCmo7D3Wm9BMRC8Cxblthy5rNm</SHA1>
<name>master</name>
</branch>
</lastBuiltRevision>

我需要从lastBuiltRevision中读取egA2kiRCmo7D3Wm9BMRC8Cxblthy5rNm元素

我能够做到以下

xmllint --xpath 'string(//SHA1)' output.xml

但是,xml中的其他位置具有不同的SHA1值。所以我决定阅读正确的子元素

xmllint --xpath /workflowRun[@_class="org.jenkinsci.plugins.workflow.job.WorkflowRun"]/action[@_class="hudson.plugins.git.util.BuildData"]/lastBuiltRevision/SHA1 output.xml

可能是我没有使用正确的xpath表达式

0 个答案:

没有答案