0

我正在从对象构建 XML,如下所示:

def buildRequestParameters()
        {
            def requestParametersXML = {
                RequestParameters {
                    IgnoreEditWarnings("false")
                    Type("SaveWithoutValidation")
                    ContractNumber("")
                    Date("null")
                    Status("null")
                    RecordHTTPRequest("false")
                }
            }

            def requestParameters = StreamingMarkupBuilder.bind(requestParametersXML)
            return requestParameters
        }

在将它绑定到 StreamMarkupBuilder 之前,我需要向element/node这个对象添加另一个。
如何更新和访问闭包对象元素?

if(someCondition)
{
  Add another element to RequestParameters //???
} 
def requestParameters = StreamingMarkupBuilder.bind(requestParametersXML)

注意:今天是我使用 Groovy 的第二天

4

1 回答 1

1

在构建 xml 时添加条件:

import groovy.xml.*

def buildRequestParameters(params)
{
    def requestParametersXML = {
        RequestParameters {
            IgnoreEditWarnings("false")
            Type("SaveWithoutValidation")
            ContractNumber("")
            Date("null")
            Status("null")
            if (params.Element1) {
              Element1 {
                Element11( params.Element1.Element11 )
              }
            }
            RecordHTTPRequest("false")
        }
    }

    def requestParameters = new StreamingMarkupBuilder().bind(requestParametersXML)
    return requestParameters
}

println buildRequestParameters( [:] )

println buildRequestParameters( [Element1: [Element11: "element11 value"]] )
于 2013-09-15T19:30:04.833 回答