首页 > 解决方案 > Jenkins - Linux 脚本 - 从 XML 中提取变量

问题描述

我有一个如下所示的 XML 文件(XML 响应总是相同的)。我需要提取sessionToken值并在 Jenkins 文件中使用它。

XML 文件 -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XmlResponse><httpCode>200</httpCode><httpStatus>OK</httpStatus><action>None</action><messageLevel>INFO</messageLevel><objectsList>{"sessionToken":"1234567890"}</objectsList><results/></XmlResponse>

这是我在 Jenkins 中尝试过但没有用的代码 -

def var=sh([returnStdout: true, script: '`cat output.xml | cut -f10 -d"\\""`'])

println ("var is" + var)

这是我在 Jenkins 控制台日志中看到的输出 -

++cat output.xml
+ 1234567890  -----> session Token is extracted in this step but for some reason it assume this as command
/workspace/script.sh: line 1: 1234567890: command not found

标签: linuxxmljenkins

解决方案


回答

根据您运行的 Jenkins 版本,管道可能是个问题。请尝试以下解决方案

def var=sh([returnStdout: true, script:'/bin/bash -c \'`cat output.xml | cut -f10 -d"\\""`\''])

推荐阅读