function parseXml(str) {
  var doc;
  if (window.ActiveXObject) {
    doc = new ActiveXObject("Microsoft.XMLDOM");
    doc.async = false;
    doc.loadXML(str);
  } else {
    var parser = new DOMParser();
    doc = parser.parseFromString(str, "text/xml");
  }
  
  return doc.documentElement;
}

function parseXmlParts(node) {
  var nodeValue = "";
  if (node.childNodes) {
    for (i3=0;i3<node.childNodes.length;i3++) {
      var childChildNode = node.childNodes[i3];
      if (childChildNode.nodeName == "#text") {
        nodeValue = childChildNode.data;
      }
      if (childChildNode.nodeName == "part") {
        nodeValue += childChildNode.childNodes[0].data;
      }
    }
  } else {
    nodeValue = node.childNodes[0].data;  
  }
  
  return nodeValue;
}
