Skip to content
/ xml Public

maintaining xml in pure javascript (IN BOTH NODE.JS & BROWSERS)

License

Notifications You must be signed in to change notification settings

lite-js/xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c5051e5 · Oct 30, 2019
Jul 13, 2017
Jul 25, 2017
Jul 13, 2017
Jul 25, 2017
Jul 13, 2017
Jul 13, 2017
Aug 25, 2016
Jul 13, 2017
Jul 14, 2017
Aug 25, 2016
Jul 14, 2017
Jul 13, 2017
Oct 30, 2019
Jul 13, 2017
Oct 30, 2019
Jul 13, 2017

Repository files navigation

xml

npm version Build Status Coverage Status

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

Maintaining?

Converting

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 @lite-js/xml?

  1. It works exactly the same in both Node.js and Browsers
  2. The browser version is supper light-weight(dist/xml.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 @lite-js/xml --save
$ npm install @lite-js/xml -g

Usage

In Node.js

const XML = require('@lite-js/xml');

Command line client

$ xml-lite --help

In browsers

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

In browsers with webpack

import XMLLite from '@lite-js/xml/indexBrowser';