2015-07-16 3 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> 
     </tem:objUserDetails></tem:getMotorPremium> 
    </soapenv:Body> 
</soapenv:Envelope> 

Я пытаюсь извлечь ProductCode из этой

в ответ [ «нс: ProductCode»] Но это не возвращается.

Пожалуйста, советы

ответ

1

Учитывая XML:

def xml = '''<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> 
      |   </tem:objUserDetails> 
      |  </tem:getMotorPremium> 
      | </soapenv:Body> 
      |</soapenv:Envelope>'''.stripMargin() 

Вам просто нужно:

def code = new XmlSlurper().parseText(xml) 
          .Body 
          .getMotorPremium 
          .objUserDetails 
          .ProductCode 
          .text() 
Смежные вопросы