对接烟台app的h5页面
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

57 lines
1.5 KiB

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = parse;
var _domhandler = require('domhandler');
var _domhandler2 = _interopRequireDefault(_domhandler);
var _Parser = require('./Parser');
var _Parser2 = _interopRequireDefault(_Parser);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
: {
default: obj
};
}
function transformNode(node) {
if (['tag', 'text'].indexOf(node.type) === -1) {
throw new Error('not supported name ' + node.name + ' of type ' + node.type);
}
if (node.type === 'text') {
return {
type: node.type,
text: node.data
};
}
return {
name: node.name,
children: transform(node.children),
attrs: node.attribs
};
}
function transform(nodes) {
return nodes.map(transformNode);
}
function parse(html, done) {
var handler = new _domhandler2['default'](function (err, children) {
if (err) {
console.error(err);
done(err);
}
try {
done(null, transform(children));
} catch (e) {
console.log('CatchClause', e);
console.log('CatchClause', e);
console.error(e);
done(e);
}
}, {});
var parser = new _Parser2['default'](handler, {
xmlMode: false
});
parser.write(html);
parser.done();
}
module.exports = exports['default'];