2011-06-07 99 views
6

我试图做一个脚本,擦网站检索最新的新闻更新。 不幸的是,我遇到了一个小问题,我似乎无法修复我对DOM有限的知识。PHP DOMNode:如何提取不仅文本,而且HTML标签也

我想凑建立如下页面:

<table> 
<tr class="color1"> 
<td>Author</td> 
<td>Content <a href="#">in HTML</a></td> 
<td>Date</td> 
</tr> 
</table> 

我可以检索我需要的只是罚款,除了内容的字段。随着$ TD->的nodeValue我检索的文本形式的内容,而我想在HTML(那里面有“A”的标签,“块引用”等)

下面的代码,我有:

try { 
    $html = @ file_get_contents("test.php"); 
    checkIfFileExists($html); 

    $dom = new DOMDocument(); 
    @ $dom->loadHTML($html); 

    $trNodes = $dom->getElementsByTagName("tr"); 
    foreach ($trNodes as $tr) { 

     if ($tr->getAttribute("class") == "color1" || $tr->getAttribute("class") == "color2") { 

     $tdNodes = $tr->childNodes; 
     foreach ($tdNodes as $td) { 

      echo $td->nodeValue . "<br />\n"; 

     } 
     echo "<br /><br /><br /><br /><br />\n"; 
    } 
} catch(Exception $e) { 
    echo $e->getMessage(); 
} 

我不希望诉诸任何第三方图书馆,但显然任何答案是最赞赏,图书馆或不。

在此先感谢。

回答

4

更换

echo $td->nodeValue . "<br />\n"; 

echo $dom->saveXML($td) . "<br />\n"; 
+0

该诀窍,非常感谢! – Steven 2011-06-07 07:46:26

相关问题