2011-03-24 51 views
3

我想解析特定元素的XML文档(SOAP请求消息)。该文档存储在requestContent,看起来如下:在Groovy中使用XmlSlurper读取XML元素

<?xml version="1.0" encoding="UTF-8"?> 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:udb="http://somenamespace> 
    <soap:Header/> 
    <soap:Body> 
     <udb:ProvideUDBIdentityInformationRequest> 
      <udb:RequestID>1</udb:RequestID> 
      <udb:IDnumber>1</udb:IDnumber> 
      <udb:UnifiedNumber>3</udb:UnifiedNumber> 
     </udb:ProvideUDBIdentityInformationRequest> 
    </soap:Body> 
</soap:Envelope> 

我的Groovy代码看起来是这样的:

def request = new XmlSlurper().parseText(requestContent) 
println request.ProvideUDBIdentityInformationRequest.RequestID 

但是输出是空的,而我本来期望一个“1”。

感谢, 罗伯特

回答

4

可以尝试:

println request.Body.ProvideUDBIdentityInformationRequest.RequestID 

(你也有一个" xml声明的末尾失踪,但我想这是一个剪切/粘贴错误?)

+0

是的,缺少的报价是一个错字。当提供Body元素时,它可以工作:-) – 2011-03-24 10:32:37