如何从DOMElement PHP Symfony获取CSS Selector

时间:2018-05-11 19:10:53

标签: php symfony xpath css-selectors

在Chrome中,我可以检查元素 - >右键单击 - >复制 - >复制Xpath(或选择器)。

现在,使用PHP Symfony我找到一个这样的元素,让我们假设它返回1个DOMElement节点:

$node = $crawler->filterXPath("//*[text()='Super dee question']");

现在,我如何才能收到CSS选择器,好像这个$ node是Google Chrome上的一个节点,我执行了上述步骤:右键单击并检查chrome页面上的$ node - >复制 - >复制Xpath。显然我不是在寻找包含' Super Dee'的Xpath,而是更像是

//*[@id="product_addtocart_form"]/div[2]/h1
编辑:看来我可以做DOMNode :: getNodePath(void),但是当使用Chrome时,它通常可以识别最近的@id并使用它,这比看起来比DOMNode :: getNodePath(void)准确得多类似的东西:

/html/body/div[2]/div/div[1]/div[2]/div[2]/div[3]/div[1]/form/div[2]/h1

2 个答案:

答案 0 :(得分:1)

至少在测试时,DOM Crawler允许以下语句: $housingText = trim($crawler->filter("#household_housing option:selected")->text());,其中household_housing是下拉菜单的唯一id,并返回所选文字。

答案 1 :(得分:0)

您可以像这样使用CSS属性选择器

$housingText = trim($crawler->filter('[id="household_housing"] option:selected')->text());

有关更多信息,https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors