【问题标题】:I cannot iterate a xml file in jenkins pipeline我无法在詹金斯管道中迭代 xml 文件
【发布时间】:2023-03-15 17:29:01
【问题描述】:

我正在尝试了解如何在 Jenkins 中迭代 .xml 文件,因此我创建了一个超级简单的 .xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<tag1>
  <tag2>hello</tag2>
  <tag3>bye</tag3>
</tag1>
  

我只想获取标签值(即 tag3)并将其打印出来。我在这里阅读了很多关于 SO 的文章,这是我拥有的鳕鱼:

import groovy.xml.*

pipeline {
    agent any

    stages {
        stage('find') {
            steps {
                script{
                    def xml = readFile "C:\\Users\\anton\\Desktop\\test.xml"
                    def file = new XmlSlurper().parseTest(xml)
                    
                    file.'**'.
                        findAll { it.name() == 'tag1' }
                        .each {println it.assetId.text()}
                }
            }
             
        }
    }
}

但我不断收到此错误:hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: groovy.util.XmlSlurper.parseTest() is applicable for argument types: (java.lang.String) values: [&lt;?xml version="1.0" encoding="utf-8"?&gt; 如果我尝试使用 XmlParser() 方法,我也会得到同样的错误。我已经关注了这些链接java.net.MalformedURLException: no protocol: XML,它似乎对他来说工作正常我没有从那个错误中找到更多信息

如果我删除最后 3 行,则会收到此错误:

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

我不明白,因为 xml herader 似乎很好......

【问题讨论】:

标签: xml jenkins jenkins-pipeline


【解决方案1】:

您必须批准使用某些脚本。您可以通过以下方式批准它们:

yourserver:8080/scriptApproval/

【讨论】:

    【解决方案2】:

    解析测试(xml) => 解析文本(xml)

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    • 在这种情况下,我认为额外的上下文是“这是一个错字;这个问题应该被关闭,因为它没有长期价值”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2021-09-13
    • 1970-01-01
    • 2019-01-09
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多