Solution
Below given a sample XML body

From this, we can extract data using the below sample code
var fileContent = fileObj.getContents(); //if xml data is in file
//Parse XML to a variable
var xmlObj = xmlMod.Parser.fromString({
text: fileContent
});
//Getting values from 945 XML file
//Traverse to each node
var orderheader = xmlMod.XPath.select
({
node: xmlObj,
xpath: '//ns0:order_header'
});
var itemNode = xmlMod.XPath.select({
node: xmlObj,
xpath: '//ns0:item'
});
var orderNum = orderheader[0].getElementsByTagName({
tagName: 'ns0:cust_order_num'
})[0].textContent;
var trackNum = orderheader[0].getElementsByTagName({
tagName: 'ns0:tracking_number'
})[0];
var trackURL = orderheader[0].getElementsByTagName({
tagName: 'ns0:tracking_url'
})[0];
log.debug("after trackURL")
var carrier = orderheader[0].getElementsByTagName({
tagName: 'ns0:carrier_name'
})[0];
//Using the nodes we can get extract datas
var itemObj = [];
for (var i = 0; i < itemNode.length; i++) {
var obj = {};
var itemname = itemNode[i].getElementsByTagName({
tagName: 'ns0:item_code'
})[0].textContent
var shipQty = itemNode[i].getElementsByTagName({
tagName: 'ns0:ship_qty'
})[0].textContent
var linenumber = itemNode[i].getElementsByTagName({
tagName: 'ns0:line_num'
})[0].textContent
if (shipQty > 0) {
obj.item = itemname;
obj.qty = shipQty;
obj.linenum = linenumber;
itemObj.push(obj);
}
}
log.debug("ItemObj", itemObj);