//script[contains(., 'blah') は、. text() は、(理論上) 複数のテキスト ノードが存在する可能性があり、text() はそれらすべてのシーケンスに一致します。
もう 1 つの可能性は、XHTML があり、XHTML 名前空間を接頭辞 ("h" など) にバインドする必要があることです。たとえば、//h:script[contains(., 'blah')] のようにします。その方法は、 registerNamespace() などの正確な呼び出し環境。ドキュメントの xmlns="...." にあるのと同じ URI を登録する必要があります。たとえば、.net で XmlDocument を使用している場合は、次のようにhttp://www.w3.org/1999/xhtmlのようになります。
System.Xml.XmlNamespaceManager xmlnsManager =
new System.Xml.XmlNamespaceManager(xmldoc.NameTable);
xmlnsManager.AddNamespace("h", "http://www.w3.org/1999/xhtml", xmlnsManager);
result = xmldoc.SelectNodes('//h:script[contains(., 'blah')]')