PHPackages                             faitheir/dom-parser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. faitheir/dom-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

faitheir/dom-parser
===================

A PHP library , use to parse normal and special DOM string like vue react. to DOM Tree .

v1.0.4(6y ago)3461MITPHPPHP &gt;=5.6

Since Apr 24Pushed 6y ago1 watchersCompare

[ Source](https://github.com/faitheir/dom-parser)[ Packagist](https://packagist.org/packages/faitheir/dom-parser)[ RSS](/packages/faitheir-dom-parser/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (3)DependenciesVersions (6)Used By (0)

dom-parser
==========

[](#dom-parser)

A PHP library , use to parse normal and special DOM string like vue react. to DOM Tree. By modifying config variables, can parse other HTML-like markup languages string too.

Installation
------------

[](#installation)

```
composer require faitheir/dom-parser

```

Base Usage
----------

[](#base-usage)

#### Parse Method

[](#parse-method)

parse Dom string to DOM Tree (\\Faitheir\\DomParser\\Node $dom).

```
$html = parse();

// or
$parser     = new \Faitheir\DomParser\DomParser();
$dom        = $parser->setConfig([])->parse($html);

print_r($dom);
```

#### Inverse Parse Method

[](#inverse-parse-method)

parse Dom Tree(\\Faitheir\\DomParser\\Node $dom) to DOM string.

```
$string = $parser->setConfig([])->invParse($dom);
or
Config::getInstance()->setConfig([
    'tag_indent' => '  '
]);
$string = (string) $dom;
```

Config Method
-------------

[](#config-method)

```
# demo
# match string '{{php id="world"}}'

$configs = [
    'start_tag_reg'  => '/^\s*{{([^}\s\/!]+)/is'
];
# other confs see DomPaser/Config.php

$parser   = $parser->setConfig($configs);
$dom      = $parser->parse($html);
```

Query Method
------------

[](#query-method)

```
# parse dom
$dom    = $parser->parse($html);

# genIdQuery
$node   = $dom->genIdQuery('genid-1588151808');
# idQuery
$node   = $dom->idQuery('main-view');
# nameQuery
$node   = $dom->nameQuery('scan');

# tagsQuery
$node   = $dom->tagsQuery('view');
$node   = $dom->tagsQuery('view', ['class' => 'scan']);

# parentQuery
$node   = $dom->genIdQuery('genid-1588151808')->parentQuery();
# childsQuery
$node   = $dom->genIdQuery('genid-1588151808')->childsQuery();
# siblingsQuery
$node   = $dom->genIdQuery('genid-1588151808')->siblingsQuery();
```

Dom Operate
-----------

[](#dom-operate)

```
$dom = $parser->setConfig([
])->parse($html);

echo '';

$node = $dom->idQuery('main-view')->addClass('hello-world');
$node = $dom->idQuery('main-view')->removeClass('hello-world');
$node = $dom->idQuery('main-view')->resetClass();

$node = $dom->nameQuery('nav')->addStyle('border', '10px solid red');
$node = $dom->nameQuery('nav')->addMultStyle(['border' => '10px solid red', 'color' => 'blue']);
$node = $dom->nameQuery('nav')->removeStyle('border');
$node = $dom->nameQuery('nav')->resetStyle();

$node = $dom->nameQuery('nav')->addAttr(':click', "alter('hello world')");
$node = $dom->nameQuery('nav')->addMultAttr([':click' => "alter('hello world')", 'v-model' => 'testvari']);
$node = $dom->nameQuery('nav')->removeAttr(':click');
$node = $dom->nameQuery('nav')->resetAttr();

$node = $dom->nameQuery('nav')->resetAllAttr();
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

5

Last Release

2207d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d0866f0ae9988754f58b0d955bc97ee9de4f1f6a1eeee55f0e45877cce68b4b2?d=identicon)[faitheir](/maintainers/faitheir)

---

Top Contributors

[![faitheir](https://avatars.githubusercontent.com/u/7506603?v=4)](https://github.com/faitheir "faitheir (9 commits)")

---

Tags

domdom-treephp-domphp-libraryreactjsvuedomreactjsvuePHP Libraryphp domdom-tree

### Embed Badge

![Health badge](/badges/faitheir-dom-parser/health.svg)

```
[![Health](https://phpackages.com/badges/faitheir-dom-parser/health.svg)](https://phpackages.com/packages/faitheir-dom-parser)
```

###  Alternatives

[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[voku/simple_html_dom

Simple HTML DOM package.

9188.3M63](/packages/voku-simple-html-dom)[paquettg/php-html-parser

An HTML DOM parser. It allows you to manipulate HTML. Find tags on an HTML page with selectors just like jQuery.

2.4k7.9M123](/packages/paquettg-php-html-parser)[sunra/php-simple-html-dom-parser

Composer adaptation of: A HTML DOM parser written in PHP5+ let you manipulate HTML in a very easy way! Require PHP 5+. Supports invalid HTML. Find tags on an HTML page with selectors just like jQuery. Extract contents from HTML in a single line.

1.3k9.4M61](/packages/sunra-php-simple-html-dom-parser)[sabre/xml

sabre/xml is an XML library that you may not hate.

52832.2M131](/packages/sabre-xml)[veewee/xml

XML without worries

1835.9M29](/packages/veewee-xml)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
