xml.jsx

XML implementation in JSX

npm install xml.jsx
6 downloads in the last week
12 downloads in the last month

xml.jsx

Build Status

Synopsis

XML DOM/SAX implementation in JSX. Current version supports only limited API's. It doesn't include namespace support.

Code Example

DOM

import "dom.jsx";
import "console.jsx";

class _Main
{
    static function main (argv : string[])
    {
        var dom = DOMParser.parseFromString('<Hello>World</Hello>');
        var root = dom.documentElement();
        console.log(root.tagName()); // -> 'Hello'
        console.log(root.firstChild().data()); // -> 'World'

        console.log(XMLSerializer.serializeToString(dom));
        // -> '<Hello>World</Hello>'
    }
}

SAX

import "sax.jsx";
import "console.jsx";

class Hanlder extends SAXHandler
{
    override function onopentag (tagname : string, attributes : Map.<string>) : void
    {
        console.log(tagname);
    }
}

class _Main
{
    static function main (argv : string[])
    {
        var handler = new Handler();
        var parser = SAXParser(handler);
        parser.parse('<Hello><World/></Hello>');
        // -> Hello
        // -> World
    }
}

Motivation

It provides the feature parsing XML/HTML fragments. SAX was implemented for search engine Oktavia's HTML indexer. DOM was implemented for jsduck2jsx.

Installation

$ npm install xml.jsx

If you want to use this library from other JSX project, install like the following:

$ npm install xml.jsx --save-dev

or add like these lines to your parent project's package.json:

   devDependencies: {
       "xml.jsx": "~0.2.0"
   },
   peerDepenencies: {
       "xml.jsx": "~0.2.0"
   }

And add node_modules/xml.jsx/src as a search path. You should add to peerDepenencies if your product is library.

API Reference

See doc folder. Refer W3C DOM spec to know detail methods/attributes description.

This library modifies API like this:

  • No attributes. All attributes become methods (e.g. length becomes length() method);
  • No variable argument

Development

Repository

Run Test

$ grunt test

Build

# Generate API reference
$ grunt doc

Author

  • shibukawa / yoshiki@shibu.jp

License

MIT

Complete license is written in LICENSE.md.

npm loves you