如何从Jenkins脚本文件中读取xml文件的节点及其属性

时间:2017-01-31 07:33:21

标签: jenkins groovy

@if(File::exists('/storage/avatars/'.Auth::user()->id.'/avatar.jpg'))
   <div class="image-upload">
       <label for="avatar_upload">
           <img src="{{asset('/storage/avatars/'.Auth::user()->id).'/avatar.jpg'}}"/>
       </label>
       <input id="avatar_upload" name="avatar_upload" type="file"/>
   </div>
@else
   <div class="image-upload">
       <label for="avatar_upload">
           <img src="/assets/admin/img/noimage.png"/>
       </label>
       <input id="avatar_upload" name="avatar_upload" type="file"/>
   </div>
@endif

我必须从jenkins文件中读取xml以上的result属性 我可以从groovy脚本中获取结果但无法从Jenkin脚本文件中获取

如何从JenkinsFile访问xml属性?

我正面临以下问题

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用新的groovy.util.XmlSlurper

1 个答案:

答案 0 :(得分:0)

假设从groovy访问它是正常的,以下工作:

def str = '''\
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<test-run id="2" testcasecount="596" result="Failed" total="596" passed="448" failed="148" inconclusive="0" skipped="0" asserts="812" engine-version="3.6.0.0" clr-version="4.0.30319.42000" start-time="2017-01-30 07:19:45Z" end-time="2017-01-30 07:31:25Z" duration="700.676581">
</test-run>    
'''

def xml = new XmlParser().parseText(str)
println "Test result: ${xml.@result}"

请注意,我为test-result元素添加了结束标记。 at字符@用于访问属性值。

以上版画:

Test result: Failed

编辑:重新阅读后,我意识到你正在寻找一个非常常见的解决方案。我将把这个留在这里,以防一个常规的后备有用。