使用 simpleDOM 获取嵌套元素内容
get nested element content with simpleDOM
如何从以下 DOM 中获取具有简单 DOM 的 ext_link
内容?
...
<td class="player">
<img src="Web/Images/Players/33/45d5652.png" />
<a class="ext_link" target="_blank" href="2017-18/Player/7124151">Michel Jordan</a>
</td>
...
我试过:
foreach($html->find('td.player')->find('a.ext_link') as $element) {
echo $element->innertext . '<br>';
}
还有:
foreach($html->find('td.player')->children(2) as $element) {
echo $element->innertext . '<br>';
}
但是两次尝试都没有成功。
注意我不能做$html->find('a.ext_link')
因为还有其他a
元素在ext_link
class文档。我只需要 td 里面的 class player
我认为您可以 find 所有(嵌套的)子级都这样:
foreach($html->find('td[class=player] a[class="ext_link"]') as $element){
echo $element->innertext();
}
如果您只想要直系子代,这可以是一个选项:
foreach($html->find('td[class=player]') as $element){
foreach ($element->childNodes() as $childNode) {
if ($childNode->nodeName() === "a") {
echo $childNode->innertext();
}
}
}
如何从以下 DOM 中获取具有简单 DOM 的 ext_link
内容?
...
<td class="player">
<img src="Web/Images/Players/33/45d5652.png" />
<a class="ext_link" target="_blank" href="2017-18/Player/7124151">Michel Jordan</a>
</td>
...
我试过:
foreach($html->find('td.player')->find('a.ext_link') as $element) {
echo $element->innertext . '<br>';
}
还有:
foreach($html->find('td.player')->children(2) as $element) {
echo $element->innertext . '<br>';
}
但是两次尝试都没有成功。
注意我不能做$html->find('a.ext_link')
因为还有其他a
元素在ext_link
class文档。我只需要 td 里面的 class player
我认为您可以 find 所有(嵌套的)子级都这样:
foreach($html->find('td[class=player] a[class="ext_link"]') as $element){
echo $element->innertext();
}
如果您只想要直系子代,这可以是一个选项:
foreach($html->find('td[class=player]') as $element){
foreach ($element->childNodes() as $childNode) {
if ($childNode->nodeName() === "a") {
echo $childNode->innertext();
}
}
}