bodyとdiv直下のテキストノードをXPathで取得してspanで囲む方法
昨日の続きです。タイトルの通りです。
複数のクエリーは、パイプで繋げば一度に取れるらしいですよ。
$xpath = new DOMXpath($dom); $query1 = '/html/body/text()[string-length(normalize-space()) > 0]'; $query2 = '/html/body//div/text()[string-length(normalize-space()) > 0]'; $query = $query1 . '|' . $query2 ; $text_nodes = $xpath->query($query); foreach ($text_nodes as $node) { $span = $dom->createElement('span'); $span->nodeValue = $node->nodeValue; $node->parentNode->replaceChild($span, $node); }