目标:我有一个Soap Response消息,我需要验证特定的元素值。我想使用Groovy DOMBuilder。
如果我有这样的肥皂反应:
def xmlResponse =
'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">\n' +
' <soap:Body>\n' +
' <ns1:getResponse xmlns:ns1="http://my.company.com">\n' +
' <return>value1</return>\n' +
'\t\t <return>value2</return>\n' +
' </ns1:getResponse>\n' +
' </soap:Body>\n' +
'</soap:Envelope>'
我使用以下代码:
def StringReader s = new StringReader(xmlResponse)
def xmldoc = groovy.xml.DOMBuilder.parse(s)
def elementName = xmldoc.documentElement
use (groovy.xml.dom.DOMCategory) {
println elementName.return.size()
println elementName.return[0].text()
}
elementName.return.size()是0.如果我删除了我的回复的肥皂信封和肥皂体,我得到2的正确答案。我不知道我需要做什么,以便我得到正确的答案正确的信息。
如果可以提供帮助,请提前感谢您!
答案 0 :(得分:0)
使用XmlSlurper
代替它很容易/便宜:
def slurped = new XmlSlurper().parseText( xmlResponse ).Body.getResponse.'return'
assert slurped.size() == 2
assert slurped[0].text() == 'value1'