UNPKG

@doodad-js/xml

Version:
78 lines (64 loc) 2.7 kB
XML Parser [![NPM Version][npm-image]][npm-url] ## Installation ```bash $ npm install @doodad-js/xml ``` ## Features - Parses XML from a stream. - By default, it uses the 'sax' package, but can support any other parser accepting chunks of data. ## Quick Start ```js "use strict"; require('@doodad-js/core').createRoot() .then(root => { return root.Doodad.Modules.load([ { module: '@doodad-js/xml' } ]); }) .then(root => { const xml = root.Doodad.Tools.Xml; // NOTE: Random songs return xml.parse("<songs><song><title>Another Me In Lack'ech</title><artist>Epica</artist></song><song><title>Silent Lucidity</title><artist>Queensryche</artist></song><song><title>One</title><artist>Metallica</artist></song></songs>"); }).then(doc => { const getItemValue = function(items, name) { return items.find(name)[0].getChildren().getAt(0).getValue(); }; for (let song of doc.getRoot().getChildren()) { const items = song.getChildren(); console.log(getItemValue(items, 'title') + " from " + getItemValue(items, 'artist')); }; }).catch(err => { console.error(err); }); ``` ## Other available packages - **@doodad-js/core**: Object-oriented programming framework (release) - **@doodad-js/cluster**: Cluster manager (alpha) - **@doodad-js/dates**: Dates formatting (beta) - **@doodad-js/http**: Http server (alpha) - **@doodad-js/http_jsonrpc**: JSON-RPC over http server (alpha) - **@doodad-js/io**: I/O module (alpha) - **@doodad-js/ipc**: IPC/RPC server (alpha) - **@doodad-js/json**: JSON parser (alpha) - **@doodad-js/loader**: Scripts loader (beta) - **@doodad-js/locale**: Locales (beta) - **@doodad-js/make**: Make tools for doodad (alpha) - **@doodad-js/mime**: Mime types (beta) - **@doodad-js/minifiers**: Javascript minifier used by doodad (alpha) - **@doodad-js/safeeval**: SafeEval (beta) - **@doodad-js/server**: Servers base module (alpha) - **@doodad-js/templates**: HTML page templates (alpha) - **@doodad-js/terminal**: Terminal (alpha) - **@doodad-js/test**: Test application - **@doodad-js/unicode**: Unicode Tools (beta) - **@doodad-js/widgets**: Widgets base module (alpha) - **@doodad-js/xml**: XML Parser (beta) ## License [Apache-2.0][license-url] This package includes a copy and port of the "libxml2" C-library, and also contains copies (raw and minified) of some files of the "sax" package. "libxml2" is licensed under MIT. "sax" is licensed under "The ISC License" and MIT. [npm-image]: https://img.shields.io/npm/v/@doodad-js/xml.svg [npm-url]: https://npmjs.org/package/@doodad-js/xml [license-url]: http://opensource.org/licenses/Apache-2.0