Pages

Friday, December 7, 2012

Validate XML in Java Script

Below is the function to validate the XML's. This function will return 'true' if it is a valid XML, else will return 'false'.

----------------------------------------------------------------
var msgError = "", isValidNode = 1;
function checkErrorXML(xml) {
 msgError = "";
 isValidNode = 1;
 checkXML(xml);
}

function checkXML(node) {
 var l, i, nam;
 nam = node.nodeName;
 if (nam == "h3") {
  if (isValidNode == 0) {
   return;
  }
  isValidNode = 0;
 }
 if (nam == "#text") {
  msgError = msgError + node.nodeValue + "\n";
 }
 l = node.childNodes.length;
 for (i = 0; i < l; i++) {
  checkXML(node.childNodes[i]);
 }
}

function validateXML(inputXml) {
 
 var returnFlag = true;
 
 // Validate in IE
 if (window.ActiveXObject) {
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(document.all(inputXml).value);

  if (xmlDoc.parseError.errorCode != 0) {
   returnFlag = false;
  } else {
   returnFlag = true;
  }
 }

 // Validate in Mozilla, Firefox, Opera, etc.
 else if (document.implementation.createDocument) {
  var parser = new DOMParser();
  var text = document.getElementById(inputXml).value;
  var xmlDoc = parser.parseFromString(text, "text/xml");

  if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
   checkErrorXML(xmlDoc.getElementsByTagName("parsererror")[0]);

   returnFlag = false;
  } else {
   returnFlag = true;
  }
 } else {
  //No Browser Support
  returnFlag = false;
 }
 
 return returnFlag;
}