Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/phpgt/cssxpath

Translate CSS selectors to XPath queries
https://github.com/phpgt/cssxpath

css css-selector css-selector-parser dom phpgt translate-css-selectors xpath xpath-queries

Last synced: 3 days ago
JSON representation

Translate CSS selectors to XPath queries

Awesome Lists containing this project

README

        

Translate CSS selectors to XPath queries
========================================

A lightweight and dependency free CSS to XPath translator. This repository is used to bring modern DOM functionality like [`querySelectorAll()`][qsa] to PHP in the [PHP.Gt/Dom][gt-dom] project.

***


Build status


Code quality


Code coverage


Current version


PHP.Gt/CssXPath documentation

Example usage
-------------

```php
use Gt\CssXPath\Translator;

$html = <<

Name



Code:


Submit code

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.

```php
$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][gt-dom].

[qsa]: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll
[gt-dom]: https://www.php.gt/dom