我想在特定网站中找到DOM中的元素。 在DOM内部有一个名为" cufon"的标签。 假设网址为http://www.xyzw.com/ 我使用的代码如下:
$dom = new DOMDocument();
@$dom->loadHTMLFile('http://www.xyzw.com/');
$teams = $dom->getElementById('cufon');
此时$ teams var假设包含DOM中的所有cufon元素,但如果我试图找到" div"它不包含任何内容。它确实找到了所有元素。 有什么问题?
答案 0 :(得分:1)
正如你所说,如果有一个名为cufontext
的TAG,那么尝试使用一个ID查找节点集合只会返回一个元素(ID必须是唯一的),所以也许你想找到所有元素指定的标记名??
$dom = new DOMDocument();
$dom->loadHTMLFile('http://www.xyzw.com/');
$teams = $dom->getElementsByTagName('cufontext');
if( $teams ){
foreach($teams as $team){
/* do stuff */
}
}
由于我们没有得到实际的网址,我必须像这样进行测试: -
/* random url - just happened to be open in browser just now */
$url='http://www.interparcel.com/';
/* the tag to search for */
$tag='div';
$dom = new DOMDocument();
$dom->loadHTMLFile( $url );
$teams = $dom->getElementsByTagName( $tag );
/* As pointed out by @Pieter it would have always returned true so additional check */
if( $teams && $teams->length > 0 ){
foreach($teams as $team){
echo $team->nodeValue;
}
}
这将从远程网址中吐出大量内容 - 因此,如果您无法找到名为cufontext
的标记,我建议您确认该网名标记