Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

not getting data while parsing the XML in script include

String
Kilo Sage

Hi ,

we are getting the below XML

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<_1:GetPriceAndStockResponseMessage
xmlns:_1="hck/1"
xmlns:_1_1="httommon/1">
<_1_1:MessageHeader language="US">
<_1_1:Status>SUCCESS</_1_1:Status>
<_1_1:ResponseMessage>SUCCESS</_1_1:ResponseMessage>
<_1_1:ResponseDetails>
<_1_1:Severity>S</_1_1:Severity>
</_1_1:ResponseDetails>
</_1_1:MessageHeader>
<Orders>
<Order>
<OrderLineItems>
<OrderLineItem>
<SourceSystemOrderLineNumber>1-1A2EAWCX</SourceSystemOrderLineNumber>
<ItemNumber>3766B002</ItemNumber>
<Quantity>1</Quantity>
<ItemPriceInfo>
<CurrencyCode>EUR</CurrencyCode>
<Amount>75</Amount>
<UnitPrice>75</UnitPrice>
<ListPrice>93.75</ListPrice>
</ItemPriceInfo>
</OrderLineItem>
</OrderLineItems>
</Order>
</Orders>
</_1:GetPriceAndStockResponseMessage>
</soapenv:Body>
</soapenv:Envelope>

 

am using below code :

 

if (status == 200) {
                var xmlDoc = new XMLDocument2();
                xmlDoc.parseXML(responseBody);
                var resposeStatus = xmlDoc.getNodeText("//_1_1:Status");
gs.info("price res"+resposeStatus);
                if (resposeStatus == 'SUCCESS') {
 
                 //var parser = new DOMParser();
                    //xmlDoc = parser.parseFromString(responseBody, "text/xml");
 
                    var count = xmlDoc.getElementsByTagName("ItemNumber").length;//ItemNumber
 
 
                    var mrvsArray = [];
 
                    for (var i = 0; i < count; i++) {
 
                        var mrvs1 = {};
 
                        mrvs1.ItemNumber = xmlDoc.getElementsByTagName("ItemNumber")[i].childNodes[0].nodeValue;
 
                        mrvs1.amount = xmlDoc.getElementsByTagName("Amount")[i].childNodes[0].nodeValue;
 
                        mrvsArray.push(mrvs1);
 
                    }
gs.info('price inside'+JSON.stringify(mrvsArray));
                    return JSON.stringify(mrvsArray);
 
                    //
                } else {
                    this.transactionLog('500', requestBody, responseBody, 'Outbound-GetPrice', 'GetPrice');
                    return 500;
                }
            } else {
                this.transactionLog(status, requestBody, responseBody, 'Outbound-GetPrice', 'GetPrice');
                return 500;
            }
 
please guide me 
1 ACCEPTED SOLUTION

Prince Arora
Tera Sage

@String ,

 

Please try below mentioned code and let me know:

 

var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(text);

var arr = []
var OrderLineItemNode= xmlDoc.getFirstNode("//OrderLineItem");

while(OrderLineItemNode!= null) {
var nodeValues = {};
nodeValues["ItemNumber"] = xmlDoc.getNodeText("//ItemNumber");
nodeValues["Amount"] = xmlDoc.getNodeText("//Amount");
arr.push(nodeValues);
OrderLineItemNode= xmlDoc.getNextNode(OrderLineItemNode);
}

gs.info(JSON.stringify(arr))

 

 

If my answer solved your issue, please mark my answer as Correct & 👍Helpful based on the Impact. 

View solution in original post

5 REPLIES 5

Prince Arora
Tera Sage

@String ,

 

Please try below mentioned code and let me know:

 

var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(text);

var arr = []
var OrderLineItemNode= xmlDoc.getFirstNode("//OrderLineItem");

while(OrderLineItemNode!= null) {
var nodeValues = {};
nodeValues["ItemNumber"] = xmlDoc.getNodeText("//ItemNumber");
nodeValues["Amount"] = xmlDoc.getNodeText("//Amount");
arr.push(nodeValues);
OrderLineItemNode= xmlDoc.getNextNode(OrderLineItemNode);
}

gs.info(JSON.stringify(arr))

 

 

If my answer solved your issue, please mark my answer as Correct & 👍Helpful based on the Impact.