summaryrefslogtreecommitdiff
path: root/lib/querypath/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'lib/querypath/README.md')
-rw-r--r--lib/querypath/README.md142
1 files changed, 142 insertions, 0 deletions
diff --git a/lib/querypath/README.md b/lib/querypath/README.md
new file mode 100644
index 0000000..fa4e885
--- /dev/null
+++ b/lib/querypath/README.md
@@ -0,0 +1,142 @@
+# 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("<?xml version='1.0'?><hello><world/></hello>")
+
+```
+
+But the real power comes from chaining. Check out the example below.
+
+### Example Usage
+
+Say we have a document like this:
+```xml
+<?xml version="1.0"?>
+<table>
+ <tr id="row1">
+ <td>one</td><td>two</td><td>three</td>
+ </tr>
+ <tr id="row2">
+ <td>four</td><td>five</td><td>six</td>
+ </tr>
+</table>
+```
+
+And say that the above is stored in the variable `$xml`. Now
+we can use QueryPath like this:
+
+```php
+<?php
+// Add the attribute "foo=bar" to every "td" element.
+qp($xml, 'td')->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('<tr><td/><td/><td/></tr>')->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
+<?php
+require 'vendor/autoload.php';
+?>
+```
+
+Without Composer, you can include QueryPath like this:
+
+```php
+<?php
+require 'QueryPath/src/qp.php';
+?>
+```
+
+QueryPath can also be compiled into a Phar and then included like this:
+
+```php
+<?php
+require 'QueryPath.phar';
+?>
+```
+
+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).