# xml-lite

Maintaining XML in pure javascript (IN BOTH NODE.JS & BROWSERS) Homepage

## Maintaining?

### Converting

### Editing/Traversing

    XMLLite.findChildNode(doc, query);
    XMLLite.findChildNodes(doc, query);
    XMLLite.findOrCreateChildNode(doc, query);
    XMLLite.removeChildNode(doc, query);
    XMLLite.eachChildNode(doc, query, callback);
    // ...

### Formatting

    XMLLite.beautify(xml, indent);
    XMLLite.uglify(xml, preserveComments);
    XMLLite.sanitize(xml, reverse);
    // ...

Actually, you can get the js object from `XMLLite.xml2js(xml)`, do whatever you want, and convert it back to xml again with `XMLLite.js2xml(obj)`.

## Why?

1. A reasonable need for usage in both Node.js and Browsers
2. A more reasonable need to use native APIs(DOMParser/XMLSerializer) to speed up the maintaining process and keep the library thin

## Why `xml-lite`?

1. It works exactly the same in both Node.js and Browsers
2. The browser version is supper light-weight(dist/xml-lite.js)
3. Convenient APIs for converting between xml/js/json/DOM, and lots of helpers to maintain the data structures
4. Super fast. it takes less than 30ms to convert an xml document with over 1,000 nodes into a js object

## Install

    $ npm install xml-lite --save
    $ npm install xml-lite -g

## Usage

In Node.js

    const XMLLite = require('xml-lite');

Command line client

    $ xml-lite --help

In browsers

    <script src="$path/to/xml-lite/dist/xml-lite.js"> <!-- window.XMLLite is available -->

In browsers with webpack

    import XMLLite from 'xml-lite/lib/index-browser';

## Demo

## API

## JSON spec

## Roadmap

## Projects using xml-lite

## Contributing