在同一个html页面中有两种不同的格式包含:
第一个是:
<div class="gs"><h3 class="gsr"><a href="http://www.example1.com/">title1</a>
第二个是:
<div class="gs"><h3 class="gsr"><span class="gsc"></span><a href="http://www.example2.com/">title2</a>
如何在一个代码中获取可以使用simple_html_dom处理这两种不同格式的链接和标题? 我试过这段代码,但它不起作用:
foreach($html->find('h3[class=gsr]') as $docLink){
$link = $docLink->first_child();
echo $link->plaintext;
echo $link->href;
}
答案 0 :(得分:1)
答案 1 :(得分:0)
从doc开始,似乎有一个后代选择器的概念
// Find all <td> in <table> which class=hello
$es = $html->find('table.hello td');
然后
foreach($html->find('h3[class=gsr] a') as $link) {
echo $link->plaintext;
echo $link->href;
}
应该做你的工作。 [我真的不知道simple_html_dom btw;)只是试一试]
修改强>
还有嵌套选择器
// Find first <li> in first <ul>
$e = $html->find('ul', 0)->find('li', 0);
所以
foreach($html->find('h3[class=gsr]') as $docTitle) {
$link = $docTitle->find('a', 0); //get the first anchor tag
echo $link->plaintext;
echo $link->href;
}
也应该有用