Socket
Socket
Sign inDemoInstall

domhandler

Package Overview
Dependencies
1
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    domhandler

handler for htmlparser2 that turns pages into a dom


Version published
Weekly downloads
32M
decreased by-9.94%
Maintainers
1
Install size
21.9 kB
Created
Weekly downloads
 

Package description

What is domhandler?

The domhandler npm package is a backend module used to handle and manipulate HTML and XML documents. It provides a way to build a DOM (Document Object Model) from HTML/XML strings, which can then be manipulated or queried programmatically. This is particularly useful for server-side applications where you need to parse and interact with HTML/XML content.

What are domhandler's main functionalities?

Building DOM from HTML

This code demonstrates how to use domhandler to parse an HTML string into a DOM structure. The `DomHandler` is used in conjunction with `htmlparser2` to parse the HTML and build the DOM.

const { parseDocument } = require('htmlparser2');
const { DomHandler } = require('domhandler');

const html = '<div><p>Hello World</p></div>';
const handler = new DomHandler((error, dom) => {
  if (error) {
    console.error(error);
  } else {
    console.log(dom);
  }
});
const parser = new parseDocument(handler);
parser.write(html);
parser.end();

Manipulating DOM

This example shows how to manipulate the DOM after parsing. It changes the text inside a <p> tag from 'Hello World' to 'Hello DOMHandler'.

const { DomHandler } = require('domhandler');
const { parseDocument } = require('htmlparser2');

const html = '<div><p>Hello World</p></div>';
const handler = new DomHandler((error, dom) => {
  if (!error) {
    const pElement = dom[0].children[0];
    pElement.firstChild.data = 'Hello DOMHandler';
    console.log(pElement);
  }
});
const parser = new parseDocument(handler);
parser.write(html);
parser.end();

Other packages similar to domhandler

Readme

Source

#DOMHandler Build Status

The DOM handler (formally known as DefaultHandler) creates a tree containing all nodes of a page. The tree may be manipulated using the DOMUtils library.

##Usage

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

##Example

var htmlparser = require("htmlparser2");
var rawHtml = "Xyz <script language= javascript>var foo = '<<bar>>';< /  script><!--<!-- Waah! -- -->";
var handler = new htmlparser.DomHandler(function (error, dom) {
    if (error)
    	[...do something for errors...]
    else
    	[...parsing done, do something...]
        console.log(dom);
});
var parser = new htmlparser.Parser(handler);
parser.write(rawHtml);
parser.done();

Output:

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

##Option: ignoreWhitespace Indicates whether the DOM should exclude text nodes that consists solely of whitespace. The default value is "false".

The following HTML will be used:

<font>
	<br>this is the text
<font>

###Example: true

[{
    type: 'tag',
    name: 'font',
    children: [{
    	type: 'tag',
    	name: 'br'
    }, {
    	data: 'this is the text\n',
    	type: 'text'
    }, {
    	type: 'tag',
    	name: 'font'
    }]
}]

###Example: false

[{
	type: 'tag',
    name: 'font',
    children: [{
    	data: '\n\t',
    	type: 'text'
    }, {
    	type: 'tag',
    	name: 'br'
    }, {
    	data: 'this is the text\n',
    	type: 'text'
    }, {
    	type: 'tag',
    	name: 'font'
    }]
}]

Keywords

FAQs

Last updated on 04 Sep 2013

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc