JSでは容易だと思うのですが、PHPにて、特定の日本語文字列を含む文章のX-pathを取得するにはどのようにしたら宜しいのでしょうか。
例えば、「本州の南海上を北東に」というワードを含む文章が、hbody という一意のクラスを持つタグの中にあるので、simple dom phpで.hbodyを狙えば文章がまるまる取得出来ます。
http://news.yahoo.co.jp/pickup/6212572
https://teratail.com/questions/18940
この質問と似ていたので、「xpath テキスト」で色々調べて出てきたものを試しましたが、何も出力されないのですが使い方が違いますでしょうか。
(配列で帰ってくるのかわからなかったのでechoとvar_dump両方しています。)
php
1$html = file_get_contents('http://news.yahoo.co.jp/pickup/6212572'); 2$document = new DOMDocument(); 3@$document->loadHTML($html); 4$path = new DOMXPath($document); 5 6// 要素の文字列が"プログラミング"である 7echo $node_list = $path->query('//*[.="進んだ"]'); 8var_dump($node_list); 9 10// 要素の文字列に"プログラミング"が含まれている 11echo $node_list = $path->query('//*(./text(), "進んだ")'); 12var_dump($node_list); 13//その他 14echo $node_list = $path->query('//p[contains(text(), "進んだ")]'); 15var_dump($node_list); 16echo $node_list = $path->query('//p[contains(text(), "進んだ")]') # 部分一致 17var_dump($node_list); 18echo $node_list = $path->query('//p[contains(., "進んだ")]') # 部分一致 19var_dump($node_list);
simple_html_dom.phpを普段使用しているのですが、特定のクラスやID,スタイル要素を持つタグを取得は出来ますが、特定の「キーワード」を含む文章を包むタグ(一意の場所指定で)取得はPHPで出来るのでしょうか。
(PhantomJSがインストール出来ない一般的な共用サーバーになります。)
回答1件
あなたの回答
tips
プレビュー