const transformed = await new Promise((res, rej) => xamel.parse(str, { strict: false, trim: false }, async function(err, xml) { if (err) { console.log('Error while transform XML'); rej(err); } const _transformed = await processNodes(xml, true); res(_transformed); })
function expandContent(fileName) { var file = fs.readFileSync(fileName); var XML = file.toString().replace("\ufeff", ""); xamel.parse(XML, { buildPath : '' }, function(err, xml) { if (err !== null) { throw err; } var item = xml.$('rss/channel').eq(0); if (item) { var links = item.get('item'); links.forEach(function(item) { var name = item.eq(0).text(); //console.log(name); fileNames.push(name); if (name && name.indexOf('article') == -1) { expandContent(name); } }); } }); }
xamel.parse(xml, function (err, result) { //var blocks = result.project.stage[0].sprites[0].sprite[0].scripts[0].script[0].block; var scripts = result.$('project/stage/sprites/sprite/scripts/*').children; scripts.forEach(function (script) { var i, xBlocks, xFirstBlock, xBlock, type, block, headerBlock; xBlocks = script.children; xFirstBlock = xBlocks[0]; if (HeaderBlock.types.indexOf(xFirstBlock.attrs.s) === -1) { console.log('Script lacks a valid header'); return; } headerBlock = new HeaderBlock(xFirstBlock); headerBlock.body = processBlocks(xBlocks, true); console.log(headerBlock.toString()); }); /* if (blocks[]) for (i = 1; i < blocks.length; i++) { xmlBlock = blocks[i]; type = xmlBlock.attrs.s; if (MethodBlock.types.hasOwnProperty(type)) { block = new MethodBlock(xmlBlock); console.log(block); } else if (MethodWaitBlock.types.hasOwnProperty(type)) { block = new MethodWaitBlock(xmlBlock); console.log(block); } else { console.log(xmlBlock); } }*/ });