Symfonyob娱乐下载 4.4新增功能:新的DomCrawler方法

格雷戈勒Pineau

提供的
格雷戈勒Pineau
# 33144

DomCrawler组件主要通过功能测试在Symfony应用ob娱乐下载程序中使用,以筛选DOM节点HTML/XML文档。DomCrawler提供的方法最初受到jQuery的启发,例如eq ()第()孩子()nextAll ()等。

在Syob娱乐下载mfony 4.4中,我们增加了三个社区经常要求的新方法:欧宝体育平台怎么样匹配()最近的()而且outerHtml ().考虑下面的HTML片段:

12 3 4 5 6 7 8 9 10 11 12 13
<超文本标记语言“en”><身体><div“1级”><h1“1级”>Lorem Ipsumh1><ul“二班3班”id“符合”><>1><“第4类”>2><>3.>ul>div>身体>超文本标记语言>

美元(字符串匹配选择器)方法返回真正的如果节点匹配给定的CSS选择器:

1 2
履带->过滤器(“#符合”->匹配(“.class-3”);/ /正确的履带->过滤器(“#符合”->匹配(“.class-4”);/ /错误

最近(字符串选择美元)method返回与给定CSS选择器匹配的节点的第一个祖先:

1 2 3
//返回div.class-1节点而不是h1.class-1节点,因为h1是//一个ul#id-1的兄弟而不是祖先履带->过滤器(“#符合”->最近的(“.class-1”);

outerHtml ()方法返回节点的整个HTML内容,包括它自己的标签:

1 2 3 4 5
/ /返回' < ul类= "二班3班”id = "符合" > <李> 1李< / > <李类=“第4类”> 2李< / > <李> 3 < /李> < / ul >”履带->过滤器(“#符合”->outerHtml ();/ /返回' <李> 1李< / > <李类=“第4类”> 2李< / > <李> 3 < /李>履带->过滤器(“#符合”->html ();

删除所有额外的空白

哈姆萨Amrouche

提供的
哈姆萨Amrouche
# 32440

在检查一些HTML标签的内容时,处理空白是非常烦人的。例如,使用下面的HTML片段:

1 2 3 4 5
<div“1级”><h2>一些标题文本h2>div>

下面的测试将失败,因为标题文本周围有“n”和空格:

1 2
//由于额外的空白而失败->assertSame (“一些标题文本”履带->过滤器(“.class-1”->text ());

在Syob娱乐下载mfony 4.3中,我们介绍了assertSelectorTextContains ()方法来帮助解决这些情况,但是从Symfony 4.4开始,你也可以通过ob娱乐下载真正的的第二个可选参数text ()删除所有多余的空格:

1 2
//因为所有多余的空格都被删除了,所以这个函数会被传递->assertSame (“一些标题文本”履带->过滤器(“.class-1”->文本(真正的));

除了从字符串的开头和结尾修剪空白之外,该特性还将内容中的两个或多个空白替换为一个空白。例如,如果原始文本是Foo bar baz,它返回Foo bar baz

帮助Symfonyob娱乐下载项目!

与任何开源项目一样,贡献代码或文档是最常欧宝官网下载app见的帮助方式,但我们也有广泛的赞助机会

评论

蒂埃里·戈特尔曼的化身
' $crawler->filter('#id-1')-> nearest ('.class-2'); '是否返回' ul '元素?

https://developer.mozilla.org/fr/docs/Web/API/Element/closest
基里尔·巴拉诺夫的化身
太棒了!
哈维尔·埃吉鲁兹的化身
@Thierry是的!看看这个测试,它断言:https://github.com/symfony/symfony/pull/33144/fob娱乐下载iles#diff-4b38af8a474c51939cedaada4bc7a3b5R940-R942
埃里克·巴特森的化身
太棒了!谢谢

评论截止。

为了确保评论保持相关性,旧帖子将被关闭。