Takes a tag-name, attributes object, and an array of children and turns them into an xml string.
$ npm install --save xml-element-string
then
var createElement = require('xml-element-string')
var element = createElement(tagName, optionalAttributesObject, optionalChildArray)
var createElement = require('xml-element-string')
var element = createElement('hello', {from: 'the'}, [
createElement('other', {side: 'I'}),
createElement('must', {have: 'called'}, [
createElement('a', {thousand: 'times'})
])
])
console.log(element)
// logs
// <hello from="the"><other side="I"/><must have="called"><a thousand="times"/></must></hello>
Not much going on here, but this module will:
- Close or self-close the nodes as necessary
- Ignore attributes that resolve to
null
orundefined
- Escape html characters in the tag, attribute names, and attribute values by way of escape-html
Clone and then $ npm install
. Please accompany all PRs with applicable tests. Please test your code in browsers, as Travis CI cannot run browser tests for PRs.
This module uses Mocha and Chai for unit testing, Istanbul for coverage, and ESLint for linting.
$ npm test
- run the tests, calculate coverage, and lint$ npm run test:watch
- run the tests on code changes (does not lint nor cover)$ npm run lint
- lint the code (will be run as a pre-commit script)
Browser tests are run with Zuul and Sauce Labs on the last two versions of Chrome, Firefox, Safari, and Internet Explorer as well as the latest version of Edge.
$ npm run test:browser
- run the unit tests in a local browser$ npm run test:sauce
- run the units tests in several browsers using Open Sauce (Sauce Labs account and local .zuulrc required)