如果 <table> 包含 <a>,请先获取 <tr> & <a>
Grab first <tr> & <a> if <table> contains <a>
我被困在一个简单的 HTML Dom 问题上...
对于我网页上的每个 <table>
,我想扫描 <table>
并检查其中是否有 <a>
。如果有,则回显第一个 <tr>
和 <a>
否则跳过并继续到最后 <table>
.
我开始研究它,但我不确定如何进行或检查 table 中是否有 <a>
...
foreach ($html->find('table') as $name) {
foreach ($name->find('a') as $elem) {
echo $elem->plaintext.'<br>';
}
}
有什么想法吗?
您分享的代码看起来非常接近。请参见下文以输出 table 的第一个子 <tr>
,如果找到 <a>
元素,则停止循环遍历其他 <a>
元素。您的代码有哪些具体问题?
foreach ($html->find('table') as $name) {
foreach ($name->find('a') as $elem) {
echo $name->find('tr', 0)->plaintext; // echo first TR element
echo $elem->plaintext.'<br>'; // echo A element
break 1; // skip to the next table
}
}
我被困在一个简单的 HTML Dom 问题上...
对于我网页上的每个 <table>
,我想扫描 <table>
并检查其中是否有 <a>
。如果有,则回显第一个 <tr>
和 <a>
否则跳过并继续到最后 <table>
.
我开始研究它,但我不确定如何进行或检查 table 中是否有 <a>
...
foreach ($html->find('table') as $name) {
foreach ($name->find('a') as $elem) {
echo $elem->plaintext.'<br>';
}
}
有什么想法吗?
您分享的代码看起来非常接近。请参见下文以输出 table 的第一个子 <tr>
,如果找到 <a>
元素,则停止循环遍历其他 <a>
元素。您的代码有哪些具体问题?
foreach ($html->find('table') as $name) {
foreach ($name->find('a') as $elem) {
echo $name->find('tr', 0)->plaintext; // echo first TR element
echo $elem->plaintext.'<br>'; // echo A element
break 1; // skip to the next table
}
}