首页 > 解决方案 > 过滤器选择 Symfony Dom Crawler

问题描述

我有这样的html:

<select name="MySelect" id="MySelectID">
    <option value="0">One</option>
    <option value="1">Two</option>
    <option value="2">Three</option>
</select>

我想获取所有选项内部文本OneTwo以及Three 如何使用 Symfony Dom Crawler 执行此操作?

标签: symfonyparsingdomweb-crawler

解决方案


您可以轻松地为路径使用标签名称,例如$crawler->filter('select > option').

$crawler = new \Symfony\Component\DomCrawler\Crawler('
    <select name="MySelect" id="MySelectID">
        <option value="0">One</option>
        <option value="1">Two</option>
        <option value="2">Three</option>
    </select>
');
$result = [];
foreach ($crawler->filter('select > option') as $domElement) {
    $result[] = $domElement->textContent;
}

// $result is ['One', 'Two', 'Three']

推荐阅读