Thursday, 31 December 2015

XML : Display XML object that also contains a list in AngularJs

I am receiving xml data from an API. The xml object goes something like this:

  <OrderHeader xmlns="xml.org">  <ResponseCode>1000</ResponseCode>  <Message>Order Received</Message>  <OrderId>10230192</OrderId>  <lstOrderTracking>      <OrderTracking>           <TrackingStatus>Order Received </TrackingStatus>           <Address> ABC </Address>           <Other> And some other stuff </Other>      </OrderTracking>      <OrderTracking>           <TrackingStatus>Order Complete </TrackingStatus>           <Address> ABC </Address>           <Other> And some other stuff </Other>      </OrderTracking>  </lstOrderTracking>  </OrderHeader>    

I am able to display Header fields successfully but no luck in displaying the list items.

This is my code:

  $scope.result = response;    if (window.DOMParser)  {       parser=new DOMParser();       xmlDoc=parser.parseFromString(response,"text/xml");  }  else // Internet Explorer  {       xmlDoc=new ActiveXObject("Microsoft.XMLDOM");       xmlDoc.async=false;       xmlDoc.loadXML(response);  }  $scope.ResponseCode = xmlDoc.getElementsByTagName("ResponseCode")[0].childNodes[0].nodeValue;  $scope.Message = xmlDoc.getElementsByTagName("Message")[0].childNodes[0].nodeValue;  $scope.OrderId = xmlDoc.getElementsByTagName("OrderId")[0].childNodes[0].nodeValue;    $scope.data = response;    

And in HTML:

  <table>          <tr>              <td>                  ResponseCode              </td>              <td>                  {{ResponseCode}}              </td>          </tr>          <tr>              <td>                  Message              </td>              <td>                  {{Message}}              </td>          </tr>          <tr>              <td>                  OrderID              </td>              <td>                  {{OrderId}}              </td>          </tr>  </table>    <div ng-repeat="x in data.lstOrderTracking.OrderTracking">        {{x.TrackingStatus}}  </div>    

How to do I display list items? And is there a better way to parse XML in Angular?

No comments:

Post a Comment