Sample code for 30+ languages & platforms
Java

Parse SOAP XML Response

Code to parse a SOAP XML response.

This is the SOAP response parsed by the code below:





  
    34.5
  

Chilkat Java Downloads

Java
import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    boolean success = false;

    boolean bFound;
    CkXml xml = new CkXml();

    // Load the XML object with the SOAP response.
    // The XML may be loaded from a file by calling
    // LoadXmlFile, or directly from a string by calling
    // LoadXml.
    success = xml.LoadXmlFile("soapResponse.xml");
    if (success != true) {
        System.out.println(xml.lastErrorText());
        return;
        }

    // The quickest way to get a piece of data is w/ the 
    // ChilkatPath method.
    // To get the content of the m:Price node:
    String strPrice;
    strPrice = xml.chilkatPath("soap:Body|m:GetStockPriceResponse|m:Price|*");
    System.out.println("Price = " + strPrice);

    // ------------------------------------
    // Another way of doing it:

    // Another way to get it is to navigate to the node.
    // Navigate to soap:Body
    xml.FirstChild2();

    // Navigate to m:GetStockPriceResponse
    // You may call FirstChild2, or you may call GetChildWithTag2
    // to get the Nth direct child having a given tag.
    // In this case, get the 1st direct child having the tag
    // "m:GetStockPriceResponse"
    // (Indexing begins at 0, so the 1st occurrence is at index 0.)
    bFound = xml.GetNthChildWithTag2("m:GetStockPriceResponse",0);
    if (bFound != true) {
        System.out.println("Did not find m:GetStockPriceResponse node.");
        return;
        }

    // One more to go..
    bFound = xml.GetNthChildWithTag2("m:Price",0);
    if (bFound != true) {
        System.out.println("Did not find m:Price node.");
        return;
        }

    // The content of the "m:Price" node is "34.5"
    strPrice = xml.content();
    System.out.println("Price = " + strPrice);

    // Restore the xml object's internal reference to the root
    // of the XML document:
    xml.GetRoot2();

    // ------------------------------------
    // Another way of doing it:

    // If you know that the node w/ the content you want to 
    // extract is uniquely tagged (i.e. no other node has the same
    // tag), then search for the node having the tag:
    bFound = xml.SearchForTag2(xml,"m:Price");
    if (bFound != true) {
        // Not found...
        return;
        }

    // The content of the "m:Price" node is "34.5"
    strPrice = xml.content();
    System.out.println("Price = " + strPrice);

    // Restore the xml object's internal reference to the root
    // of the XML document:
    xml.GetRoot2();

    // ------------------------------------
    // Another way of doing it:

    // Again, assuming there is only a single node with the
    // tag to be fetched:
    strPrice = xml.accumulateTagContent("m:Price","");
    System.out.println("Price = " + strPrice);

    // There are many other possible ways of doing the same thing..
  }
}