SNC Development

ServiceNow & Other Writings by EcoStratus Technologies

Dealing with XML API – Parsing the SOAP response

Published by

on

cmaloy's avatarTechie Geek

Not gonna really try and show off anything here – but the documentation for XML API is a bit foggy and I want to share this. I tried to use a few common XML API calls that are a bit of a challenge to find out about.

Lets pretend you get a SOAP response and you want to manually iterate through that response envelope that has this structure:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <ns0:Root xmlns:ns0="http://Schemas.SNResponse_RigData">
         <Status>Success</Status>
         <RigData>Whatever</RigData>
      </ns0:Root>
   </s:Body>
</s:Envelope>

Here are a few API calls you will need:

      this.fSoapDoc = new XMLDocument(requestXML);
      var soapBody = this.fSoapDoc.getNode("/Envelope/Body/Root");

      var nodelist = soapBody.getChildNodes();
      for (var i=0; i < nodelist.getLength(); i++) {
          var kidNode = nodelist.item(i);
          if (kidNode.getNodeType() == Packages.org.w3c.dom.Node.ELEMENT_NODE) {
            var fieldName = Packages.com.glide.util.XMLUtil.getNodeNameNS(kidNode);
            var fieldValue = Packages.com.glide.util.XMLUtil.getAllText(kidNode);
            gs.log("FIELD NAME: " + fieldName, "cmaloy");
            gs.log("FIELD VALUE: " + fieldValue, "cmaloy");
          }         
      }

This is going to get the name and value of the Status…

View original post 47 more words


Discover more from SNC Development

Subscribe to get the latest posts sent to your email.

Discover more from SNC Development

Subscribe now to keep reading and get access to the full archive.

Continue reading