0

同じhtmlページに同じ内容の2つの異なる形式があります:

最初は:

<div class="gs"><h3 class="gsr"><a href="http://www.example1.com/">title1</a>

2番目は:

<div class="gs"><h3 class="gsr"><span class="gsc"></span><a href="http://www.example2.com/">title2</a>

simple_html_domでその2つの異なる形式を処理できる1つのコードでリンクとタイトルを取得するにはどうすればよいですか?このコードを試しましたが、機能しません:

foreach($html->find('h3[class=gsr]') as $docLink){
   $link = $docLink->first_child();
   echo $link->plaintext;
   echo $link->href;
}
4

2 に答える 2

1

使用するgetElementsByTagName($tag);

dom内の指定されたすべてのタグを見つけます...

このリンクを参照してくださいgetElementsByTagName

于 2012-07-18T11:01:08.600 に答える
0

ドキュメントから、子孫セレクターの概念があるようです

// 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_dombtwを本当に知りません;)ちょっと試してみてください]

編集

ネストされたセレクターもあります

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

また動作するはずです

于 2012-07-18T11:08:10.023 に答える