2014年8月19日火曜日

PHP: XPath で特定の文字を含むノードを探す

XPath を使った DOM の解析で、
要素内の文字列が、特定の文字列と一致する要素や、
特定の文字列を含む要素を探すときには以下のように書けます。

$html = file_get_content('src.html');
$document = new DOMDocument();
@$document->loadHTML($html);
$path = new DOMXPath($document);

// 要素の文字列が"プログラミング"である
$node_list = $path->query('//*[.="プログラミング"]');

// 要素の文字列に"プログラミング"が含まれている
$node_list = $path->query('//*(./text(), "プログラミング")');

// 要素が"target"クラスを持っている、かつ、文字列が"プログラミングである"
$node_list = $path->query('//*[@class="target"][.="プログラミング"]');

0 件のコメント:

コメントを投稿