2017-04-24 17 views
0

のためのHTMLノードをトラバース: PHP DOM traverse HTML nodes and childnodePHP DOMは、私はSOの質問を掲示し、ハイパーリンクタグ

誰かが親切に私は、このためのソリューションを与えました。以下に示すように しかし、私は実際に解析していたデータは、複数のハイパーリンクタグを持っています

<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; 
} 

答えて

0

targethrefのようなだけで、別の属性です。値を取得し、比較する:

foreach ($node->getElementsByTagName('a') as $node){ 
    if ($node->getAttribute('target') === '_top') { 
     $array_href[]= $node->getAttribute('href'); 
    } 
} 
+0

を作成します!ありがとうマット – Jeanclaude

0

aタグをループしながら、新しいノードが_newの値を持つ属性targetが含まれているかどうかを確認するif、すなわち:華麗だ

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; 
} 
関連する問題