您可以使用以下代码使用阿里的 XmlUtils 工具来删除name等于TTTT的上层node StringParameterDefinition:

import com.alibaba.fastjson.JSONObject as JSONObject
import com.alibaba.fastjson.JSONArray as JSONArray
import com.alibaba.fastjson.xml.XML as XML

def xml = """
      <parameterDefinitions>
        <hudson.model.StringParameterDefinition>
          <name>S1</name>
          <description>111</description>
          <defaultValue>111</defaultValue>
          <trim>true</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.TextParameterDefinition>
          <name>TTTT</name>
          <description>TTT</description>
          <defaultValue>TTT</defaultValue>
          <trim>false</trim>
        </hudson.model.TextParameterDefinition>
        <com.cloudbees.plugins.credentials.CredentialsParameterDefinition plugin="credentials@1143.vb_e8b_b_ceee347">
          <name>TTTTAAAA</name>
          <defaultValue>AAAFF</defaultValue>
          <credentialType>com.cloudbees.plugins.credentials.common.StandardCredentials</credentialType>
          <required>false</required>
        </com.cloudbees.plugins.credentials.CredentialsParameterDefinition>
      </parameterDefinitions>
"""

def json = XML.toJSONObject(xml)
def parameterDefinitions = json['parameterDefinitions']
if (parameterDefinitions instanceof JSONObject) {
    parameterDefinitions = [parameterDefinitions]
}
parameterDefinitions.eachWithIndex { node, index ->
    if (node['name'] == 'TTTT') {
        parameterDefinitions.remove(index)
        return
    }
}

def updatedXml = XML.toString(json)
println(updatedXml)

此代码将删除name等于TTTT的上层node StringParameterDefinition,并打印更新后的XML。

parameterDefinitions hudsonmodelStringParameterDefinition nameS1name description111description defaultValue111defaultValue trimtruetrim hudsonmodelStr

原文地址: https://www.cveoy.top/t/topic/i1Z0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录