自己引用。 そういうわけで自分の用途では、一度 html で XPath 結果を取ってみて、空集合なら上の resolver を使うようにした。 document.evaluateと名前空間がわからない - by edvakf in hatena これだと、名前空間がごちゃ混ぜになっている文書では正常に全ての要素を評価することができない。 どうせ HTML (名前空間無し) な要素か XHTML な要素しか取得しないんだから、こんな感じでやることにした。 function getElementsByXPath(exp) { /* exp == '//a[@href]|//input[not(@type="hidden")]|//textarea|//select|//img[@onclick]|//button' */ var exp2=exp.replace(/\/\//g,'//xht