DomCrawler 2 等 child
DomCrawler 2nd and etc child
我正在 DomCrawler 上从 SimpleHTMLDom 修改我的解析器,并且在某些点上(对我而言)没有涵盖可能来自新手开发者的所有问题。
在 SHD 中,我这样写是为了访问第二个 child:
$value = $dom->find('.t18',0);
$result = $value->find('b',1);
但是在 DomCrawler 中,我找不到任何类似的方法来精确选择具有 t18 class 的元素的第二个 child。
我怎样才能做到这一点?
我尝试从中获取数据的代码示例:
<div class="t18">
<b>20(PLN)</b>
<b>4.66 (EUR)</b>
<br>
<b>20(EUR)</b>
<b>85.87(PLN)</b>
<br>
</div>
您可以使用 "eq" 函数来 select 节点的第 n 个子节点。
对于您的示例,select 第一个 .t18 元素内的第二个 b 元素:
echo $domCrawler->filter(".t18")->eq(0)->filter("b")->eq(1)->text(); // will echo 4.66 (EUR)
我正在 DomCrawler 上从 SimpleHTMLDom 修改我的解析器,并且在某些点上(对我而言)没有涵盖可能来自新手开发者的所有问题。 在 SHD 中,我这样写是为了访问第二个 child:
$value = $dom->find('.t18',0);
$result = $value->find('b',1);
但是在 DomCrawler 中,我找不到任何类似的方法来精确选择具有 t18 class 的元素的第二个 child。 我怎样才能做到这一点?
我尝试从中获取数据的代码示例:
<div class="t18">
<b>20(PLN)</b>
<b>4.66 (EUR)</b>
<br>
<b>20(EUR)</b>
<b>85.87(PLN)</b>
<br>
</div>
您可以使用 "eq" 函数来 select 节点的第 n 个子节点。
对于您的示例,select 第一个 .t18 元素内的第二个 b 元素:
echo $domCrawler->filter(".t18")->eq(0)->filter("b")->eq(1)->text(); // will echo 4.66 (EUR)