phpgt/cssxpath

将CSS选择器转换为XPath查询。

资助包维护!
PhpGt

v1.2.0 2024-01-03 18:33 UTC

README

一个轻量级且无依赖的CSS到XPath转换器。此仓库用于将现代DOM功能,如querySelectorAll(),引入PHP.Gt/Dom项目中。

Build status Code quality Code coverage Current version PHP.Gt/CssXPath documentation

用法示例

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时,这会自动处理。