简单 HTML DOM - Child 选择器 (CSS)
Simple HTML DOM - Child Selectors (CSS)
我正在尝试使用 >
组合器 select parents div.element
的(直接)child,但失败了。
HTML:
<div class="element">
<p>test</p>
</div>
<div class="element">
<div class="selected">
<p>test2</p>
</div>
</div>
PHP:
$html->find('div.element > p', 0);
我正在寻找 select 直接 p
元素。
如果它是嵌套后代 - 它不应该 return 任何东西,但它 returns test2
.
如何将它写入 return test
,而不是 test2
?谢谢
更新: 这里关于 SO 的普遍共识似乎是简单 HTML DOM 不好。我最终按照 Phil 的建议使用 PHP 的 DOMDocument
编写了我的代码。我确实测试了 nevermind 的解决方案,它也确实有效。感谢所有帮助和Happy Coding
好吧,这应该(实际上必须:))有效(在 4 个 div 上测试):
foreach($html->find('div.element') as $element) {
$paragraph=$element->find('p',0);
if($paragraph==$element->first_child())
echo $paragraph;
}
我正在尝试使用 >
组合器 select parents div.element
的(直接)child,但失败了。
HTML:
<div class="element">
<p>test</p>
</div>
<div class="element">
<div class="selected">
<p>test2</p>
</div>
</div>
PHP:
$html->find('div.element > p', 0);
我正在寻找 select 直接 p
元素。
如果它是嵌套后代 - 它不应该 return 任何东西,但它 returns test2
.
如何将它写入 return test
,而不是 test2
?谢谢
更新: 这里关于 SO 的普遍共识似乎是简单 HTML DOM 不好。我最终按照 Phil 的建议使用 PHP 的 DOMDocument
编写了我的代码。我确实测试了 nevermind 的解决方案,它也确实有效。感谢所有帮助和Happy Coding
好吧,这应该(实际上必须:))有效(在 4 个 div 上测试):
foreach($html->find('div.element') as $element) {
$paragraph=$element->find('p',0);
if($paragraph==$element->first_child())
echo $paragraph;
}