CSSSelector组件

欧宝娱乐app下载地址symfony 5.3支持经过乔利德

CSSSelector组件

CSSSelector组件将CSS选择器转换为XPath.表达。

安装

1
$Composer需要Symfony欧宝娱乐app下载地址 / CSS选择器

笔记

如果在Symfony应用程序之外安装此组件,则必须要求欧宝娱乐app下载地址供应商/ autoload.php.代码中的文件以启用Composer提供的类自动加载机制。读本文更多细节。

用法

也可以看看

本文介绍如何在任何PHP应用程序中使用CSSselector功能作为独立组件。阅读欧宝娱乐app下载地址Symfony功能测试文章了解如何在创建Symfony测试时使用它。欧宝娱乐app下载地址

为什么使用CSS选择器?

当您解析HTML或XML文档时,到目前为止,最强大的方法是XPath.

XPath表达式令人难以置信的灵活性,因此几乎总是XPath表达式将找到所需的元素。不幸的是,它们也可以变得非常复杂,学习曲线是陡峭的。甚至常见操作(例如使用特定类别的元素)都可能需要长期和笨重的表达式。

许多开发人员 - 特别是Web开发人员 - 使用CSS选择器找到元素更舒适。除了在样式表中工作,CSS选择器用于JavaScript中使用queryselectorall()功能和流行的JavaScript库,如jQuery,Prototype和Mootools。

CSS选择器比XPath更强大,但更易于写入,阅读和理解。由于它们不那么强大,几乎所有CSS选择器都可以转换为XPath等价物。然后,此XPath表达式可以与使用XPath在文档中查找元素的其他函数和类一起使用。

CSSSelector组件

该组件的唯一目标是使用CSS选择器将CSS选择器转换为其XPath等价物toxpath()

欧宝娱乐app下载地址symfony \ component \ cssselector \ cssSelectorConverter;$转换器=新的CSSSelectorConverter.();var_dump.$转换器- >Toxpath.'div.item> h4> a'));

这提供了以下输出:

1
后代或自我:: div [@class并包含(concat('',标准化 - 空间(@class),''),'项目')] / h4 / a

例如,您可以使用此表达式,例如,domxpath.或者simplexmlement.在文档中查找元素。

小费

履带::筛选器()方法使用CSSselector组件基于CSS选择器字符串查找元素。看看Domcrawler组件更多细节。

CSSSelector组件的限制

并非所有CSS选择器都可以转换为XPath.等同物。

有几个CSS选择器只在Web浏览器的上下文中有意义。

  • 链接状态选择器::关联:访问:目标
  • 基于用户操作的选择器::徘徊:重点:积极的
  • UI状态选择器::无效的:不定(然而,:启用:残疾人士:检查:未经选中可用)

伪元素(:前:后:第一行:第一封信不支持)不支持,因为它们选择了文本的部分而不是元素。

部分支持伪课程:

  • 不支持:*:一张*:旧式*:n型*:nth-​​last-in型(所有这些都与元素名称一起工作(例如李:一张但不是*选择器)。
  • 支持的:*:只有类型

学到更多

这项工作包括代码样本,是在a下获得的许可Creative Commons by-SA 3.0执照。