CssSelector组件
编辑该页面CssSelector组件
CssSelector组件将CSS选择器XPath表达式。
安装
1
美元作曲家需要symfony / csob娱乐下载s选择器
请注意
如果你安装这个组件之外的Symfony应用程序,你必须要求ob娱乐下载供应商/ autoload.php
文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。
使用
另请参阅
这篇文章解释了如何使用CssSelector功能作为一个独立的组件在任何PHP应用程序。读了ob娱乐下载Symfony功能测试篇文章来了解如何使用它在创建Symfony测试。ob娱乐下载
为什么使用CSS选择器?
当你解析HTML或XML文档,迄今为止最强大的方法XPath。
XPath表达式非常灵活,所以几乎总是一个XPath表达式,找到你所需要的元素。不幸的是,他们也可以变得非常复杂,陡峭的学习曲线。甚至通用操作(如找到一个元素与特定类)可能需要漫长而笨拙的表达式。
许多开发人员——特别是web开发人员更喜欢使用CSS选择器找到元素。以及在样式表,在JavaScript使用CSS选择器querySelectorAll ()
功能和在jQuery等流行的JavaScript库。
比XPath CSS选择器不太强大,但更容易写,阅读和理解。因为他们更强大,几乎所有的CSS选择器可以转换成等价的XPath。这个XPath表达式可以用于其他函数和类文档中使用XPath找到元素。
CssSelector组件
组件的唯一目标是把XPath等价物CSS选择器,使用toXPath ():
1 2 3 4
使用ob娱乐下载\组件\CssSelector\CssSelectorConverter;美元转换器=新CssSelectorConverter ();var_dump (美元转换器- >toXPath (“div.item > h4 >“));
这给下面的输出:
1
子轴或self:: div [@class,包含(concat (normalize - space (@class) ' ', ' '),“项目”)]/ h4 / a
例如,你可以使用这个表达式DOMXPath或SimpleXMLElement在文档中找到元素。
提示
的爬虫:过滤器()方法使用CssSelector组件基于一个CSS选择器字符串找到元素。看到DomCrawler组件为更多的细节。
CssSelector组件的局限性
并不是所有的CSS选择器可以转换为XPath等价物。
有几个CSS选择器,只有上下文中有意义的浏览器。
- 链路状态选择器:
:链接
,:参观
,:目标
- 选择器基于用户操作:
:徘徊
,:专注
,:主动
- ui状态选择器:
:无效
,:不确定
(然而,:启用
,:禁用
,:检查
和:不
是可用的)
伪元素(:在
,:在
,:一线
,:首字母
)不支持,因为他们选择的部分文本而不是元素。
伪类部分支持:
- 不支持:
*:first-of-type
,*:last-of-type
,*:nth-of-type
和*:nth-last-of-type
(所有这些处理一个元素名称(如。李:first-of-type
),但不是*
选择器)。 - 支持:
*:only-of-type
,*:范围
。
6.3
支持*:范围
是在Symfony 6.3中引入的。ob娱乐下载