{
  "name": "htmlparser2",
  "description": "Performance-optimized forgiving HTML/XML/RSS parser",
  "version": "2.6.0",
  "author": {
    "name": "Felix Boehm",
    "email": "me@feedic.com"
  },
  "keywords": [
    "html",
    "parser",
    "streams",
    "xml",
    "dom",
    "rss",
    "feed",
    "atom"
  ],
  "contributors": [
    {
      "name": "Chris Winberry",
      "email": "chris@winberry.net"
    }
  ],
  "repository": {
    "type": "git",
    "url": "git://github.com/fb55/node-htmlparser.git"
  },
  "bugs": {
    "url": "http://github.com/fb55/node-htmlparser/issues"
  },
  "directories": {
    "lib": "lib/"
  },
  "main": "./lib/",
  "scripts": {
    "test": "node tests/00-runtests.js"
  },
  "dependencies": {
    "domhandler": "2.0",
    "domutils": "1.0",
    "domelementtype": "1"
  },
  "licenses": [
    {
      "type": "MIT",
      "url": "http://github.com/tautologistics/node-htmlparser/raw/master/LICENSE"
    }
  ],
  "readme": "#htmlparser2 [![Build Status](https://secure.travis-ci.org/fb55/node-htmlparser.png)](http://travis-ci.org/fb55/node-htmlparser)\n\nA forgiving HTML/XML/RSS parser written in JS for NodeJS. The parser can handle streams (chunked data) and supports custom handlers for writing custom DOMs/output.\n\n##Installing\n\tnpm install htmlparser2\n\n##Usage\n\n```javascript\nvar htmlparser = require(\"htmlparser2\");\nvar parser = new htmlparser.Parser({\n\tonopentag: function(name, attribs){\n\t\tif(name === \"script\" && attribs.type === \"text/javascript\"){\n\t\t\tconsole.log(\"JS! Hooray!\");\n\t\t}\n\t},\n\tontext: function(text){\n\t\tconsole.log(\"-->\", text);\n\t},\n\tonclosetag: function(tagname){\n\t\tif(tagname === \"script\"){\n\t\t\tconsole.log(\"That's it?!\");\n\t\t}\n\t}\n});\nparser.write(\"Xyz <script language= javascript>var foo = '<<bar>>';< /  script>\");\nparser.done();\n```\n\nOutput (simplified):\n\n```javascript\n--> Xyz \nJS! Hooray!\n--> var foo = '<<bar>>';\nThat's it?!\n```\n\nRead more about the parser in the [wiki](https://github.com/FB55/node-htmlparser/wiki/Parser-options).\n\n##Get a DOM\nThe `DomHandler` (known as `DefaultHandler` in the original `htmlparser` module) produces a DOM (document object model) that can be manipulated using the `DomUtils` helper.\n\nThe `DomHandler`, while still bundled with this module, was recently moved to it's [own module](https://github.com/FB55/domhandler). Have a look at it for further information.\n\n##Parsing RSS/RDF/Atom Feeds\n\n```javascript\nnew htmlparser.FeedHandler(function(<error> error, <object> feed){\n    ...\n});\n```\n\n##Performance\nUsing a slightly modified version of [node-expat](https://github.com/astro/node-expat)s `bench.js`, I received the following results (on a MacBook (late 2010)):\n\n* [htmlparser](https://github.com/tautologistics/node-htmlparser): 51779 el/s\n* [sax.js](https://github.com/isaacs/sax-js): 53169 el/s\n* [node-expat](https://github.com/astro/node-expat): 103388 el/s\n* [htmlparser2](https://github.com/fb55/node-htmlparser): 118614 el/s\n\nThe test may be found in `tests/bench.js`.\n\n##How is this different from [node-htmlparser](https://github.com/tautologistics/node-htmlparser)?\nThis is a fork of the project above. The main difference is that this is intended to be used only with node (it runs on other platforms using [browserify](https://github.com/substack/node-browserify)). Besides, the code is much better structured, has less duplications and is remarkably faster than the original. \n\nThe parser now provides a callback interface close to [sax.js](https://github.com/isaacs/sax-js) (originally targeted at [readabilitySAX](https://github.com/fb55/readabilitysax)). I also fixed a couple of bugs & included some pull requests for the original project (eg. [RDF feed support](https://github.com/tautologistics/node-htmlparser/pull/35)).\n\nThe support for location data and verbose output was removed a couple of versions ago. It's still available in the [verbose branch](https://github.com/FB55/node-htmlparser/tree/verbose). \n\nThe `DefaultHandler` and the `RssHandler` were renamed to clarify their purpose (to `DomHandler` and `FeedHandler`). The old names are still available when requiring `htmlparser2`, so your code should work as expected.\n",
  "readmeFilename": "README.md",
  "_id": "htmlparser2@2.6.0",
  "_from": "htmlparser2@2.x"
}
