2011-03-24 59 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