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

使用Groovy脚本解析XML提取Ticket名称并存入用户属性咨询

Groovy解析XML提取Ticket属性正确实现方案

为什么不建议用字符串分割处理XML

  • 字符串分割强依赖XML的固定排版,一旦出现换行、空格变化、属性顺序调整、新增其他属性就会完全失效
  • 不符合XML解析的规范,稳定性和可维护性极差

正确实现方案

Groovy内置了XmlSlurper工具,专门用于轻量解析XML,实现代码如下:

// 获取原始XML文本
def xmlContent = job.getDocuments()[0].getText()

// 初始化XmlSlurper,关闭校验避免不必要的异常
def xmlSlurper = new XmlSlurper(false, false)
def rootNode = xmlSlurper.parseText(xmlContent)

// 批量提取所有<Ticket>节点的name属性,转为字符串列表
def ticketNameList = rootNode.Ticket*.@name*.toString()

// 输出验证结果(可选)
println "提取到的Ticket名称列表:"
ticketNameList.each { println "- ${it}" }

// 保存到用户属性,示例为存为逗号分隔字符串,可根据实际需求调整存储格式
def userPropertyValue = ticketNameList.join(',')
// 替换为你实际的用户属性存储逻辑即可
// 例如Jenkins场景下保存到构建用户属性:currentBuild.buildCauses.userId.setProperty('ticketNames', userPropertyValue)

效果验证

针对你提供的XML样本,上述代码提取的ticketNameList结果为:["Accept", "Afp", "Exe"],完全符合需求。

内容的提问来源于stack exchange,提问作者Soyem Sikandar Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:03