●やりたいこと
あるHTML文字列から指定したclassの要素(ノードというのでしょうか?)をすべて文字列として取得したい。
条件
1 HTML中にはclass="dest" はひとつかもしれないし複数あるかもしれないが、ひとつと仮定する
2 取得元HTMLから以下の要素を抜き出して
HTML
1// 抽出元HTML例 2<p><a href="YYY">XXX</a><hr><dl></dl><div class="dest" ・・・>文字やHTMLタグ・・・</div><img src=""><form ・・><input type="text" ・・・></form></p>
HTML
1// 抽出したいHTML 2<div class="dest" ・・・>文字やHTMLタグ・・・</div>
を文字列として取得したい
3 指定したclassを含むHTMLタグ内にはどんなタグが含まれているかはわからない
HTML
1// 抜き出した例 2<div class="dest" ・・・><span><div ・・・></div><ul>・・・</ul></span></div>
●やってみたこと
php
1// example1 -------------- 2$dom = new DOMDocument('1.0', 'UTF-8'); 3$html = mb_convert_encoding($html, "HTML-ENTITIES", 'auto'); 4@$dom->loadHTML($html); 5$xml = simplexml_import_dom($dom); 6$t = $xml->xpath('//div[@class="dest"]'); 7if (!$t){ die('xpath error'); } 8print_r( $t ); 9 10// example2 -------------- 11$dom = new DOMDocument('1.0', 'UTF-8'); 12$html = mb_convert_encoding($html, "HTML-ENTITIES", 'auto'); 13@$dom->loadHTML($html); 14$xpath = new DOMXPath($dom); 15 16// class="dest" 17$content = $xpath->query('//div[@class="dest"]'); 18var_export($content);
example1ではオブジェクト取得に成功したが、その後どうやって文字列にしたらいいかがわからない
example2では、指定したclassを指定したがなにも取得できなかった
HTML文字列から条件にあったHTMLを文字列として取得したいのだがどうしたらいいでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。