Skip to content

Latest commit

 

History

History
66 lines (45 loc) · 2.86 KB

README.md

File metadata and controls

66 lines (45 loc) · 2.86 KB

xml element string

npm Travis Coveralls David David

Takes a tag-name, attributes object, and an array of children and turns them into an xml string.

usage

$ npm install --save xml-element-string

then

var createElement = require('xml-element-string')
var element = createElement(tagName, optionalAttributesObject, optionalChildArray)

example

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>

features

Not much going on here, but this module will:

  • Close or self-close the nodes as necessary
  • Ignore attributes that resolve to null or undefined
  • Escape html characters in the tag, attribute names, and attribute values by way of escape-html

developing and contributing

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.

unit testing

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 testing

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)