'use strict'; const nodeToJson = require('./node2json'); const xmlToNodeobj = require('./xmlstr2xmlnode'); const x2xmlnode = require('./xmlstr2xmlnode'); const buildOptions = require('./util').buildOptions; const validator = require('./validator'); exports.parse = function(xmlData, options, validationOption) { if( validationOption){ if(validationOption === true) validationOption = {} const result = validator.validate(xmlData, validationOption); if (result !== true) { throw Error( result.err.msg) } } options = buildOptions(options, x2xmlnode.defaultOptions, x2xmlnode.props); const traversableObj = xmlToNodeobj.getTraversalObj(xmlData, options) //print(traversableObj, " "); return nodeToJson.convertToJson(traversableObj, options); }; exports.convertTonimn = require('./nimndata').convert2nimn; exports.getTraversalObj = xmlToNodeobj.getTraversalObj; exports.convertToJson = nodeToJson.convertToJson; exports.convertToJsonString = require('./node2json_str').convertToJsonString; exports.validate = validator.validate; exports.j2xParser = require('./json2xml'); exports.parseToNimn = function(xmlData, schema, options) { return exports.convertTonimn(exports.getTraversalObj(xmlData, options), schema, options); }; function print(xmlNode, indentation){ if(xmlNode){ console.log(indentation + "{") console.log(indentation + " \"tagName\": \"" + xmlNode.tagname + "\", "); if(xmlNode.parent){ console.log(indentation + " \"parent\": \"" + xmlNode.parent.tagname + "\", "); } console.log(indentation + " \"val\": \"" + xmlNode.val + "\", "); console.log(indentation + " \"attrs\": " + JSON.stringify(xmlNode.attrsMap,null,4) + ", "); if(xmlNode.child){ console.log(indentation + "\"child\": {") const indentation2 = indentation + indentation; Object.keys(xmlNode.child).forEach( function(key) { const node = xmlNode.child[key]; if(Array.isArray(node)){ console.log(indentation + "\""+key+"\" :[") node.forEach( function(item,index) { //console.log(indentation + " \""+index+"\" : [") print(item, indentation2); }) console.log(indentation + "],") }else{ console.log(indentation + " \""+key+"\" : {") print(node, indentation2); console.log(indentation + "},") } }); console.log(indentation + "},") } console.log(indentation + "},") } }