ne0bot/php-dom-wrapper

Simple DOM wrapper to select nodes using either CSS or XPath expressions and manipulate results quickly and easily.

0.7.3 2017-11-15 10:42 UTC

This package is not auto-updated.

Last update: 2024-04-14 01:25:50 UTC


README

Scrutinizer Code Quality Build Status

Intro

PHP DOM Wrapper is a simple DOM wrapper library to manipulate and traverse HTML documents. Based around jQuery's manipulation and traversal methods, largely mimicking the behaviour of it's jQuery counterparts.

Author

Requirements

  • PHP 5.4 or later
  • PSR-4 compatible autoloader

Install

This library is designed to be installed via Composer.

Add the dependency into your projects composer.json.

{
  "require": {
    "scotteh/php-dom-wrapper": "dev-master"
  }
}

Download the composer.phar

curl -sS https://getcomposer.org/installer | php

Install the library.

php composer.phar install

Autoloading

This library requires an autoloader, if you aren't already using one you can include Composers autoloader.

require('vendor/autoload.php');

Methods

Manipulation

Method Implemented
addClass Yes
after Yes
append Yes
attr Yes
before Yes
clone Yes
detach Yes
empty Yes
hasClass Yes
html Yes
prepend Yes
remove Yes
removeAttr Yes
removeClass Yes
replaceWith Yes
text Yes
unwrap Yes
wrap Yes
wrapAll Yes
wrapInner Yes

Traversal

Method Implemented Method Name (if different)
add Yes
children Yes
closest Yes
contents Yes
eq Yes
filter Yes
find Yes
first Yes
has Yes
is Yes
last Yes
map Yes
next Yes following
nextAll Yes followingAll
nextUntil Yes followingUntil
not Yes
parent Yes
parents Yes
parentsUntil Yes
prev Yes preceding
prevAll Yes precedingAll
prevUntil Yes precedingUntil
siblings Yes
slice Yes

Additional Methods:

  • count()
  • each()

Usage

Example #1:

use DOMWrap\Document;

$html = '<ul><li>First</li><li>Second</li><li>Third</li></ul>';

$doc = new Document();
$doc->html($html);
$nodes = $doc->find('li');

// Returns '3'
var_dump($nodes->count());

// Append as a child node to each <li>
$nodes->append('<b>!</b>');

// Returns: <html><body><ul><li>First<b>!</b></li><li>Second<b>!</b></li><li>Third<b>!</b></li></ul></body></html>
var_dump($doc->saveHTML($doc));

Licensing

PHP DOM Wrapper is licensed by Andrew Scott under the BSD 3-Clause License, see the LICENSE file for more details.