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
相关产品推荐
相关产品推荐

