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