phpgt / cssxpath
将CSS选择器转换为XPath查询。
v1.2.0
2024-01-03 18:33 UTC
Requires
- php: >=8.0
Requires (Dev)
- ext-dom: *
- ext-libxml: *
- phpstan/phpstan: ^v1.8
- phpunit/phpunit: ^v9.5
- dev-master
- v1.2.0
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v0.2.0
- v0.1.0
- v0.0.2
- v0.0.1
- dev-nth-last-of-type-tests
- dev-case-insensitive-attribute-names--ci
- dev-dependabot/composer/phpstan/phpstan-1.10.6
- dev-dependabot/composer/phpunit/phpunit-9.6.5
- dev-22-checkbox
- dev-circleci
- dev-4-pseudo-selectors
This package is auto-updated.
Last update: 2024-09-10 13:56:04 UTC
README
一个轻量级且无依赖的CSS到XPath转换器。此仓库用于将现代DOM功能,如querySelectorAll()
,引入PHP.Gt/Dom项目中。
示例用法
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");
使用此库处理XML文档
为了正确处理XML文档,其中属性是区分大小写的,请将构造函数的htmlMode
属性传递为false
。
$translator = new Translator("[data-FOO='bar']", htmlMode: false);
值得注意的是,为了使XML样式匹配工作,您必须使用DOMDocument->load/DOMDocument->loadXML来加载文档内容,而不是使用DOMDocument->loadHTMLFile/DOMDocument->loadHTML,因为HTML加载方法会自动将标签和属性名称转换为小写。当使用PHP.Gt/Dom时,这会自动处理。