改行を含まないテキストノードを取得するXPath

'//text()[string-length(normalize-space()) > 0]'

これで勝つる。


<追記>
誰がタイトル取ってこいと...俺か、
欲しいのは、bodyタグ以下だけですよね〜

'/html/body//text()[string-length(normalize-space()) > 0]'

今度こそ
</追記>


normalize-spaceで空白文字削って、長さ見れば改行だけのテキストは長さ0になりヒットしない。


例えばjavascript

var nodes = 上記XPathで取れたテキストノードの配列;
for(var i = 0, l = nodes.length; i < l; i++)
{
  var parent = nodes[i].parentNode;
  var span = document.createElement('span');
  var clone = node.cloneNode(true);
  span.style.color = '#F00';
  span.appendChild(clone);
  parent.replaceChild(span, node);
}

とかやると、全てのテキストノードをフォントカラーが赤のspanで囲むことができる。