GitPedia

Domhandler

Handler for htmlparser2, to get a DOM

From fb55·Updated June 25, 2026·View on GitHub·

The DOM handler creates a tree containing all nodes of a page. The tree can be manipulated using the [domutils](https://github.com/fb55/domutils) or [cheerio](https://github.com/cheeriojs/cheerio) libraries and rendered using [dom-serializer](https://github.com/cheeriojs/dom-serializer) . The project is written primarily in TypeScript, distributed under the BSD 2-Clause "Simplified" License license, first published in 2012. Key topics include: dom, dom-builder, domhandler, htmlparser2, tree.

Latest release: v6.0.1
March 17, 2026View Changelog →

domhandler Node.js CI

The DOM handler creates a tree containing all nodes of a page.
The tree can be manipulated using the domutils
or cheerio libraries and
rendered using dom-serializer .

Usage

javascript
const handler = new DomHandler([ <func> callback(err, dom), ] [ <obj> options ]); // const parser = new Parser(handler[, options]);

Available options are described below.

Example

javascript
const { Parser } = require("htmlparser2"); const { DomHandler } = require("domhandler"); const rawHtml = "Xyz <script language= javascript>var foo = '<<bar>>';</script><!--<!-- Waah! -- -->"; const handler = new DomHandler((error, dom) => { if (error) { // Handle error } else { // Parsing completed, do something console.log(dom); } }); const parser = new Parser(handler); parser.write(rawHtml); parser.end();

Output:

javascript
[ { data: "Xyz ", type: "text", }, { type: "script", name: "script", attribs: { language: "javascript", }, children: [ { data: "var foo = '<bar>';<", type: "text", }, ], }, { data: "<!-- Waah! -- ", type: "comment", }, ];

Option: withStartIndices

Add a startIndex property to nodes.
When the parser is used in a non-streaming fashion, startIndex is an integer
indicating the position of the start of the node in the document.
The default value is false.

Option: withEndIndices

Add an endIndex property to nodes.
When the parser is used in a non-streaming fashion, endIndex is an integer
indicating the position of the end of the node in the document.
The default value is false.


License: BSD-2-Clause

Security contact information

To report a security vulnerability, please use the Tidelift security contact.
Tidelift will coordinate the fix and disclosure.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from fb55/domhandler via the GitHub API.Last fetched: 6/27/2026