繁体   English   中英

如何在Netsuite中解析XML并在Groovy中获得特定值

[英]How can I parse XML in Netsuite and get a specific value in groovy

响应是:

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">   <soapenv:Header>
    <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2014_2.platform.webservices.netsuite.com">
      <platformMsgs:nsId>WEBSERVICES_TSTDRV1371590_041220151334115279325827527_fefe8c</platformMsgs:nsId>
    </platformMsgs:documentInfo>   </soapenv:Header>   <soapenv:Body>
    <addResponse xmlns="">
      <platformMsgs:writeResponse xmlns:platformMsgs="urn:messages_2014_2.platform.webservices.netsuite.com">
        <platformCore:status xmlns:platformCore="urn:core_2014_2.platform.webservices.netsuite.com" isSuccess="true"/>
        <platformMsgs:baseRef xmlns:platformCore="urn:core_2014_2.platform.webservices.netsuite.com" internalId="5450" type="customer" xsi:type="platformCore:RecordRef"/>
      </platformMsgs:writeResponse>
    </addResponse>   
</soapenv:Body> 
</soapenv:Envelope>

我如何使用groovy获取此xml的内部ID,我的代码是:

def slurper =新的XmlSlurper()。parseText(response.text);

您是说:

def slurper = new XmlSlurper().parseText(response.text);
def id = slurper.Body.addResponse.writeResponse.baseRef.@internalId

assert id == '5450'

最简单的答案:

def slurper = new XmlSlurper().parseText(response.text)
def internalId = slurpXml['Body']['addResponse']['writeResponse']['baseRef'].attribute('internalId')

当然,这完全忽略了命名空间。 不过,您无需在示例中担心它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM