You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins声明式流水线:多字符串数据转XML实现求助

Jenkins声明式流水线:字符串转XML标签

你的原代码存在两个关键问题:

  • 输入参数是空格分隔的键值对,但代码里用换行符\n分割,导致无法拆分出每个独立的键值条目
  • 内层循环遍历split后的结果列表逻辑错误,每个键值对split("=")后是[key, value]两个元素,直接遍历单个元素去取索引1会报错

下面是修正后的完整流水线脚本:

pipeline{
    agent any
    parameters {
        text defaultValue:  '''host=localhost port=2222 url=http://localhost:2222''', description: 'api details', name : 'api'
    }
    stage('api details') {
        steps{ 
            script{
                // 按空格分割成单个键值对条目
                def apiEntries = api.split(" ")
                
                // 遍历每个键值对
                for(String entry : apiEntries) {
                    // 按=分割成key和value,限制只分割一次(避免value含=的情况)
                    def keyValue = entry.split("=", 2)
                    if(keyValue.size() == 2) {
                        def key = keyValue[0].trim()
                        def value = keyValue[1].trim()
                        // 输出XML标签
                        println("<${key}>${value}</${key}>")
                    }
                }
            } 
        } 
    } 
}

关键优化说明:

  • 用split(" ")拆分输入字符串,得到每个独立的key=value条目
  • 用split("=", 2)限制只分割一次,防止value中包含=符号时被错误拆分
  • 增加trim()处理,避免键或值前后有多余空格
  • 加判断keyValue.size() == 2,过滤无效条目(比如空字符串或无=的情况)

运行后输出:

<host>localhost</host>
<port>2222</port>
<url>http://localhost:2222</url>

内容的提问来源于stack exchange,提问作者deepuKumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:05:16