# QueryPath: Find your way. Authors: Matt Butcher (lead), Emily Brand, and many others [Website](http://querypath.org) | [API Docs](http://api.querypath.org/docs) | [VCS and Issue Tracking](http://github.com/technosophos/querypath) | [Support List](http://groups.google.com/group/support-querypath) | [Developer List](http://groups.google.com/group/devel-querypath) | [Pear channel](http://pear.querypath.org) | This package is licensed under an MIT license (COPYING-MIT.txt). ## At A Glance QueryPath is a jQuery-like library for working with XML and HTML documents in PHP. It now contains support for HTML5 via the [HTML5-PHP project](https://github.com/Masterminds/html5-php). ### Gettings Started Assuming you have successfully installed QueryPath via Composer, you can parse documents like this: ``` require_once "vendor/autoload.php"; // HTML5 (new) $qp = html5qp("path/to/file.html"); // Legacy HTML via libxml $qp = htmlqp("path/to/file.html"); // XML or XHTML $qp = qp("path/to/file.html"); // All of the above can take string markup instead of a file name: $qp = qp("") ``` But the real power comes from chaining. Check out the example below. ### Example Usage Say we have a document like this: ```xml
onetwothree
fourfivesix
``` And say that the above is stored in the variable `$xml`. Now we can use QueryPath like this: ```php attr('foo', 'bar'); // Print the contents of the third TD in the second row: print qp($xml, '#row2>td:nth(3)')->text(); // Append another row to the XML and then write the // result to standard output: qp($xml, 'tr:last')->after('')->writeXML(); ?> ``` (This example is in `examples/at-a-glance.php`.) With over 60 functions and robust support for chaining, you can accomplish sophisticated XML and HTML processing using QueryPath. ## QueryPath Installers The preferred method of installing QueryPath is via [Composer](http://getcomposer.org). You can also download the package from GitHub. ### Composer (Preferred) To add QueryPath as a library in your project, add this to the 'require' section of your `composer.json`: ```json { "require": { "querypath/QueryPath": ">=3.0.0" } } ``` The run `php composer.phar install` in that directory. To stay up to date on stable code, you can use `dev-master` instead of `>=3.0.0`. ### Manual Install You can either download a stable release from the [GitHub Tags page](https://github.com/technosophos/querypath/tags) or you can use `git` to clone [this repository](http://github.com/technosophos/querypath) and work from the code. ## Including QueryPath As of QueryPath 3.x, QueryPath uses the Composer autoloader if you installed with composer: ```php ``` Without Composer, you can include QueryPath like this: ```php ``` QueryPath can also be compiled into a Phar and then included like this: ```php ``` From there, the main functions you will want to use are `qp()` (alias of `QueryPath::with()`) and `htmlqp()` (alias of `QueryPath::withHTML()`). Start with the [API docs](http://api.querypath.org/docs).