Jenkins:在声明性管道中使用 XmlSlurper
Jenkins: Using XmlSlurper In Declarative Pipeline
使用 XmlSlurper,我正在尝试读取一个 XML 文件(特别是来自基于 .Net 的 API 的 Web.config)作为 Jenkins 管道的一部分。我似乎无法访问元素的任何属性。我得到的错误是:
No such field found: field groovy.util.slurpersupport.NodeChild primary
以下是我尝试将其分解为最简单的情况:
script {
def xml = """
<colors>
<color primary="true">Red</color>
<color primary="true">Yellow</color>
<color primary="true">Blue</color>
<color primary="false">Purple</color>
</colors>
"""
def colors = new XmlSlurper().parseText(xml)
echo "First Color: ${colors.color[0]}" //works fine
echo "First Color: ${colors.color[0]} Primary? ${colors.color[0].@primary}" //fails
}
我正在使用 Jenkins 2.121.1。
感谢任何帮助。
禁用"Use groovy sandbox".
问题的根源是通过 Jenkinsfile 编写的代码,我相信它总是在沙箱中运行。
未选中时工作正常。 :)
尝试将 ${colors.color[0].@primary}
更改为 ${colors.color[0]['@primary']}
使用 XmlSlurper,我正在尝试读取一个 XML 文件(特别是来自基于 .Net 的 API 的 Web.config)作为 Jenkins 管道的一部分。我似乎无法访问元素的任何属性。我得到的错误是:
No such field found: field groovy.util.slurpersupport.NodeChild primary
以下是我尝试将其分解为最简单的情况:
script {
def xml = """
<colors>
<color primary="true">Red</color>
<color primary="true">Yellow</color>
<color primary="true">Blue</color>
<color primary="false">Purple</color>
</colors>
"""
def colors = new XmlSlurper().parseText(xml)
echo "First Color: ${colors.color[0]}" //works fine
echo "First Color: ${colors.color[0]} Primary? ${colors.color[0].@primary}" //fails
}
我正在使用 Jenkins 2.121.1。
感谢任何帮助。
禁用"Use groovy sandbox".
问题的根源是通过 Jenkinsfile 编写的代码,我相信它总是在沙箱中运行。
未选中时工作正常。 :)
尝试将 ${colors.color[0].@primary}
更改为 ${colors.color[0]['@primary']}