phpgt / cssxpath
Convert CSS selectors to XPath queries.
Fund package maintenance!
Requires
- php: >=8.0
Requires (Dev)
- ext-dom: *
- ext-libxml: *
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2026-03-16 12:14:26 UTC
README
A lightweight and dependency free CSS to XPath translator. This repository is used to bring modern DOM functionality like querySelectorAll() to PHP in the PHP.Gt/Dom project.
Example usage
use Gt\CssXPath\Translator; $html = <<<HTML <form> <label> Name <input name="name" /> </label> <label> Code: <input name="code" /> </label> <button name="do" value="submit">Submit code</button> </form> HTML; $document = new DOMDocument(); $document->loadHTML($html); $xpath = new DOMXPath($document); $inputElementList = $xpath->query(new Translator("form>label>input"));
Using this library with XML Documents
To correctly work with XML documents, where the attributes are case-sensitive, pass false to the htmlMode property of the constructor.
$translator = new Translator("[data-FOO='bar']", htmlMode: false);
It's perhaps worth noting that for XML-style matching to work, you must load the document content with DOMDocument->load/DOMDocument->loadXML instead of DOMDocument->loadHTMLFile/DOMDocument->loadHTML, as the HTML loading methods automatically convert the tags and attribute names to lowercase. This is handled automatically when using PHP.Gt/Dom.