A lightweight, dependency-free HTML parser for Node.js. This package provides a simple way to parse and manipulate HTML content.
This project is still in beta
You can install the package using npm:
npm install dom-parser-mini
Basic HTML Parsing
const HTMLNode = require('dom-parser-mini');
const html = `<div><p>Hello, world!</p></div>`;
const nodes = HTMLNode.create(html);
console.log(nodes);
const html = `<div><img src="image.jpg" /></div>`;
const nodes = HTMLNode.create(html);
console.log(nodes);
Parses the input HTML string and returns an array of HTMLNodeInterface objects representing the DOM structure.
An interface representing a parsed HTML node with the following properties and methods:
tagName: string
: The tag name of the node.attributes: { [key: string]: string }
: The attributes of the node.children: HTMLNodeInterface[]
: The child nodes of the node.content?: string
: The content of the node.
html(): string
: Returns the HTML representation of the node.- Example:
const node = HTMLNode.create('<div><p>Hello</p></div>')[0]; console.log(node.html()); // Outputs: <div><p>Hello</p></div>
- Example:
text(): string
: Returns the text content of the node.- Example:
const node = HTMLNode.create('<div>Hello <span>world</span></div>')[0]; console.log(node.text()); // Outputs: Hello world
- Example:
getElementById(id: string): HTMLNodeInterface | null
: Finds a child node by its ID.- Example:
const node = HTMLNode.create('<div><p id="para">Hello</p></div>')[0]; console.log(node.getElementById('para')); // Outputs the <p> node with id="para"
- Example:
getElementsByClass(className: string): HTMLNodeInterface[]
: Finds child nodes by their class name.- Example:
const node = HTMLNode.create('<div class="container"><p class="text">Hello</p></div>')[0]; console.log(node.getElementsByClass('text')); // Outputs an array with the <p> node
- Example:
hidden(): void
: Hides the node by settingdisplay: none;
in its style attribute.- Example:
const node = HTMLNode.create('<div>Hello</div>')[0]; node.hidden(); console.log(node.html()); // Outputs: <div style="display: none;">Hello</div>
- Example:
show(): void
: Shows the node by removingdisplay: none;
from its style attribute.- Example:
const node = HTMLNode.create('<div style="display: none;">Hello</div>')[0]; node.show(); console.log(node.html()); // Outputs: <div>Hello</div>
- Example:
remove(): void
: Marks the node as removed.- Example:
const node = HTMLNode.create('<div>Hello</div>')[0]; node.remove(); console.log(node.html()); // Outputs: ''
- Example:
unRemove(): void
: Unmarks the node as removed.- Example:
const node = HTMLNode.create('<div>Hello</div>')[0]; node.remove(); node.unRemove(); console.log(node.html()); // Outputs: <div>Hello</div>
- Example:
filterAttributes(whitelist: string[]): void
: Filters the node's attributes based on a whitelist.- Example:
const node = HTMLNode.create('<div onclick="alert(\'hello\')" class="container">Hello</div>')[0]; node.filterAttributes(['class']); console.log(node.html()); // Outputs: <div class="container">Hello</div>
- Example:
Feel free to open issues or submit pull requests for improvements and bug fixes.
This project is licensed under the MIT License.