的超级链接标签
问题描述:
PHP DOM遍历HTML节点我发布了一个SO问题: PHP DOM traverse HTML nodes and childnode的超级链接标签
有人好心给我一个解决方案这一点。 然而,我实际上解析数据,有几个超级链接标签,如下图所示:
<tr>
<td>DATA 1</td>
<td><a href="12345" target="_top">DATA 2</a></td>
<td><a href="other_link">DATA 3</a></td>
</tr>
我期望的输出是只选择href
(如“12345”)。对于一个目标的超级链接标签"_top"
。
我当前的代码选择表中的所有超链接标签。
foreach ($dom->getElementsByTagName('td') as $node) {
foreach ($node->getElementsByTagName('a') as $node){
$array_href[]= $node->getAttribute('href');
}
$array_data[] = $node->nodeValue;
}
答
target
只是另一个属性,如href
。获得的价值和比较:
foreach ($node->getElementsByTagName('a') as $node){
if ($node->getAttribute('target') === '_top') {
$array_href[]= $node->getAttribute('href');
}
}
答
虽然循环通过a
标签,创建一个新的if
来检查,如果该节点包含的_new
值的属性target
,即:
foreach ($dom->getElementsByTagName('td') as $node) {
foreach ($node->getElementsByTagName('a') as $node){
if ($node->getAttribute('target') == '_top') {
$array_href[] = $node->getAttribute('href');
}
}
$array_data[] = $node->nodeValue;
}
这是辉煌!谢谢马特 – Jeanclaude