2013-07-03 65 views
0

我得到一個XML文件中像這樣:常規的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> 

我要救下面的字符串到另一個文件。

<soap:Body> 
     <udb:ProvideUDBIdentityInformationRequest> 
      <udb:RequestID>1</udb:RequestID> 
      <udb:IDnumber>1</udb:IDnumber> 
      <udb:UnifiedNumber>3</udb:UnifiedNumber> 
     </udb:ProvideUDBIdentityInformationRequest> 
    </soap:Body> 

我該如何做到這一點? 事實上,我已經參考了這樣一個教程,http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper,但在XmlSlurper中找不到這樣的方法。

在此先感謝!

回答

2

假設你有一個名爲xml變量原始的XML,你可以這樣做:

String output = new groovy.xml.StreamingMarkupBuilder().bind { 
    mkp.yield new XmlSlurper().parseText(xml).Body 
} 

然後,output等於:

<soap:Body xmlns:soap='http://www.w3.org/2003/05/soap-envelope'> 
    <udb:ProvideUDBIdentityInformationRequest xmlns:udb='http://somenamespace'> 
     <udb:RequestID>1</udb:RequestID> 
     <udb:IDnumber>1</udb:IDnumber> 
     <udb:UnifiedNumber>3</udb:UnifiedNumber> 
    </udb:ProvideUDBIdentityInformationRequest> 
</soap:Body> 
+0

你也可以這樣做:'字符串輸出= groovy.xml .XmlUtil.serialize(new XmlSlurper()。parseText(xml).Body)' –

+0

謝謝,它的工作原理! – mCY