groovy XmlSlurper解析XML

groovy XmlSlurper解析XML,groovy,Groovy,我得到的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:ProvideUDBIdentityIn

我得到的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> 


假设在名为
xml
的变量中有原始xml,则可以执行以下操作:

String output = new groovy.xml.StreamingMarkupBuilder().bind {
    mkp.yield new XmlSlurper().parseText( xml ).Body
}
然后,
输出
等于:

<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>

1.
1.
3.

您还可以执行:
String output=groovy.xml.XmlUtil.serialize(新的XmlSlurper().parseText(xml.Body)
<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>