2015-07-17 4 views
0

Я пытаюсь извлечь узел xml одного атрибута. Но это не выборка правильноНе удалось получить все значения тегов XML с помощью groovy

вот мой ответ

def response = "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ns="http://schemas.datacontract.org/2004/07/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
<soapenv:Header/> 
    <soapenv:Body> 
    <tem:getMotorPremium><tem:objUserDetails>     
     <ns:ProductCode>2311</ns:ProductCode> 
     <ns:ProductId>2311</ns:ProductId> 
     <ns:ProductName>2311</ns:ProductName> 
     </tem:objUserDetails></tem:getMotorPremium> 
    </soapenv:Body> 
</soapenv:Envelope> 

Я получаю значение каждого следующим образом.

def code = new XmlSlurper().parseText(response) 
         .Body 
         .getMotorPremium 
         .objUserDetails 
         .ProductCode 
         .text() 

def Id = new XmlSlurper().parseText(response) 
         .Body 
         .getMotorPremium 
         .objUserDetails 
         .ProductId 
         .text() 

def Name = new XmlSlurper().parseText(response) 
         .Body 
         .getMotorPremium 
         .objUserDetails 
         .ProductName 
         .text() 

Я не хочу использовать «новый XmlSlurper(). ParseText (ответ) .Body.getMotorPremium.objUserDetails» все время

я использовал что-то вроде этого, чтобы попробовать, но не работает .. Пожалуйста, советы

def ab = new XmlSlurper().parseText(response).Body.getMotorPremium.objUserDetails 
    logInfo("Product code :"+ab.ProductCode.text()); 
    logInfo("Product Id :"+ab.ProductId.text()); 
    logInfo("Product Name :"+ab.ProductName.text()); 
+0

Код, который вы предоставили, хорошо работает. Какую версию groovy вы используете? – Opal

+0

@Opal Я получаю как пустую строку для тех, – Syed

ответ

0

следующий код работает прекрасно:

def response = """ 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:ns="http://schemas.datacontract.org/2004/07/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
<soapenv:Header/> 
    <soapenv:Body> 
    <tem:getMotorPremium><tem:objUserDetails>     
     <ns:ProductCode>2311</ns:ProductCode> 
     <ns:ProductId>2312</ns:ProductId> 
     <ns:ProductName>2313</ns:ProductName> 
     </tem:objUserDetails></tem:getMotorPremium> 
    </soapenv:Body> 
</soapenv:Envelope> 
""" 
def ab = new XmlSlurper().parseText(response).Body.getMotorPremium.objUserDetails 
println("Product code :"+ab.ProductCode.text()) 
println("Product Id :"+ab.ProductId.text()) 
println("Product Name :"+ab.ProductName.text()) 
ab.with { 
    println("Product code :"+it.ProductCode.text()) 
    println("Product Id :"+it.ProductId.text()) 
    println("Product Name :"+it.ProductName.text()) 
} 

Может быть, это logInfo проблема?

+0

№ logInfo в моем коде. Он просто печатает журнал – Syed

+0

Я еще раз проверю и подтвержу u – Syed

+0

Получил его .. Извините, была опечатка .. Спасибо Опал – Syed

Смежные вопросы