function getNodeToXml(){
		var nodeSet=[];
		var activeWorkspace=RED.view.getWorkspace();
		RED.nodes.eachNode(function(n) {
			if (n.z == activeWorkspace) {
                    		nodeSet.push({n:n});
                	}
        	});

		var exportableNodeSet = RED.nodes.createExportableNodeSet(nodeSet);
		console.dir(exportableNodeSet);
		console.log(JSON.stringify(exportableNodeSet));

		function getDgStartNode(nodeList){
			for(var i=0;i<nodeList.length;i++){
				if(nodeList[i].type == 'dgstart'){
					return nodeList[i];
				}	
			}
			return null;
		}
		function getNode(id){
			for(var i=0;i<exportableNodeSet.length;i++){
				if(exportableNodeSet[i].id == id){
					return exportableNodeSet[i];
				}	
			}
			return null;
		}

		function getStartTag(node){
			var startTag="";
			var xmlStr="";
			if(node != null && node.type != 'dgstart'){
				xmlStr=node.xml;
				var regex = /(<)([\w-]+)(.*)?/;
                		var match = regex.exec(xmlStr);
                		if(match != null){
                        		if(match[1] != undefined && match[2] != undefined){
                                		startTag = match[2];
                        		}
                		}else{
					console.log("startTag not found.");
				}	
			}
			return startTag;
		}

		var dgstartNode = getDgStartNode(exportableNodeSet);

		var level=0;
		var fullXmlStr="";

		printXml(dgstartNode);
		

		function printXml(node){
			var xmlStr="";
			var startTag = "";
			if(node != null && node.type != 'dgstart'){
				xmlStr=node.xml;
				startTag = getStartTag(node);
				if(level > 0){
					var spacing = Array(level).join("  ");	
					xmlStr=xmlStr.replace(/\n/g,spacing);
					fullXmlStr +=xmlStr;
					
					console.log(xmlStr);
				}else{
					fullXmlStr +=xmlStr;
					console.log(xmlStr);
				}
			}

			//console.log("startTag:" + startTag);
	
			var wiredNodes = [];
			if(node != null && node.wires != null && node.wires[0] != null &&  node.wires[0] != undefined && node.wires[0].length >0 ){
				wiredNodes=node.wires[0];
				//sort based on y position
				wiredNodes.sort(function(a, b){
					return a.y-b.y;
				});
			}

			for(var k=0;wiredNodes != null && k<wiredNodes.length;k++){
				level++;
				var nd = getNode(wiredNodes[k]);
				printXml(nd);
			}

			//append end tag
			if(startTag != ""){
				if(level >0){
					var spacing = Array(level).join("  ");	
					fullXmlStr += spacing + "</" + startTag + ">";
					console.log(spacing + "</" + startTag + ">");
				}else{
					fullXmlStr += "</" + startTag + ">";
					console.log("</" + startTag + ">");
				}
			}	

			if(level>0){
				level=level-1;
			}
			console.log("endTag:" + startTag);
			//console.log("xml:" + fullXmlStr);
		}
		console.log("fullXmlStr:" + fullXmlStr);

		/*
		for (var link in allLinks){
			var nd = RED.nodes.node(link);
			console.dir(nd);						 
			var obj = RED.nodes.getNodeSet(RED.view.getWorkspace());
			console.dir(obj);
		}
		*/


		//console.dir(RED.nodes.getAllFlowNodes());
		//console.dir(RED.nodes.getType());
		/*
		console.dir(RED.nodes.nodes);
		RED.nodes.nodes.forEach(function (node){
			console.dir(node);
		});
		*/

	    /*var map = {68: false, 69: false, 86: false};
	    $("#node-input-validate").keydown(function(e) {
    		if (e.keyCode in map) {
			map[e.keyCode] = true;
			if (map[68] && map[69] && map[86]) {
            			// FIRE EVENT
				return "abcd";
                        }
    		}
		}).keyup(function(e) {
    			if (e.keyCode in map) {
        			map[e.keyCode] = false;
    			}
		});
	*/	
	return fullXmlStr;
}