[1] [CITE[Introduction to using XPath in JavaScript - MDC]] ([[名無しさん]]) [2] [CITE[Latest topics > getElementsByなんちゃら の代わりにXPathを使う - outsider reflex]] ([[Piro(SHIMODA Hiroshi)]] 著, [CODE[2007-09-09 11:44:24 +09:00]] 版) ([[名無しさん]]) [3] [CITE@en[SourceForge.net: XPath over HTML for MSIE]] ([CODE[2007-10-06 15:19:21 +09:00]] 版) ([[名無しさん]]) [4] [CITE@ja[Safari 3 の XPath のバグ: Days on the Moon]] ([CODE[2008-05-11 15:36:16 +09:00]] 版) ([[名無しさん]]) [5] [CITE@ja[選択範囲のリンクを取得する: Days on the Moon]] ([CODE[2008-10-19 11:34:21 +09:00]] 版) ([[名無しさん]]) [6] [CITE[XPath は実用に耐えうるかの考察と xpath.js - IT戦記]] ([CODE[2008-10-31 22:50:48 +09:00]] 版) ([[名無しさん]]) [7] [CITE[HTML 用の XPath 機能テストを書いた - IT戦記]] ([TIME[2008-10-31 23:00:27 +09:00]] 版) [8] [CITE[JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記]] ([TIME[2009-02-02 02:01:53 +09:00]] 版) [9] [CITE[JavaScript-XPath – CodeRepos::Share – Trac]] ([TIME[2009-02-02 11:11:12 +09:00]] 版) [10] [CITE[はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記]] ([TIME[2009-02-08 18:51:12 +09:00]] 版) [11] [CITE@ja[XPath, $X function, NSResolver < 16 < March < 2006 < nulog, NULL::something : out of the headphone]] ([TIME[2009-02-01 19:18:32 +09:00]] 版) [12] [CITE@ja[Kanasan.JS Greasemonkey チュートリアル読書会: Days on the Moon]] ([TIME[2009-03-23 00:03:31 +09:00]] 版) >document.evaluate メソッドの返り値である XPathResult オブジェクトを、別の evaluate メソッドの呼び出し時に第5引数として渡すと、その XPathResult オブジェクトが再利用されます。しかし、「再利用される」とは具体的にどうなることかという説明は DOM 3 XPath 仕様中になく、そもそも "'''may''' be reused" (強調は筆者による) なので確実に再利用されるという保証もありません。Firefox (Gecko) と Opera では第 5 引数に渡したオブジェクトが返り値となりますが、Safari (WebKit) では常に新しいオブジェクトを生成して返すようです。ちなみに Firefox では第 5 引数を指定すると意図しない結果になることがあります。 > [PRE(JS example code)[ var result = document.evaluate("'foo'", document, null, XPathResult.STRING_TYPE, null); document.evaluate("'bar'", document, null, XPathResult.STRING_TYPE, result); result.stringValue; // Firefox 3.6a1pre => "foobar" ("bar" を期待していたのに!) // Opera 9.64 => "bar" // Safari 3.1.2 => "foo" ]PRE] > XPathResult には結果の型として順序付きのもの (ORDERED_NODE_ITERATOR_TYPE、ORDERED_NODE_SNAPSHOT_TYPE、FIRST_ORDERED_NODE_TYPE) と順序なしのもの (UNORDERED_NODE_ITERATOR_TYPE、UNORDERED_NODE_SNAPSHOT_TYPE、ANY_UNORDERED_NODE_TYPE) があります。ソースコードを見る限り、WebKit では順序付きかどうかで処理を分けていますが、Gecko では順序なしでも順序付きと同等に扱っているようです。 [13] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-09-29 08:53:48 +09:00]] 版) [14] [CITE[Bug 7059 – Forking XPath]] ([TIME[2009-09-29 08:57:42 +09:00]] 版) [15] [CITE[IRC logs: freenode / #whatwg / 20101008]] ( ([TIME[2010-10-22 22:12:03 +09:00]] 版)) [16] [CITE@en[DOM XPath - WHATWG Wiki]] ( ([TIME[2012-04-10 18:16:04 +09:00]] 版)) [17] [CITE@en-US[Document Object Model (DOM) Level 3 XPath Specification]] ( ([TIME[2004-02-23 21:49:04 +09:00]] 版)) [18] [CITE@en-US[Document Object Model (DOM) Level 3 XPath Specification]] ( ([TIME[2004-02-23 21:49:04 +09:00]] 版)) [19] [CITE@en-US[Document Object Model (DOM) Requirements]] ( ([TIME[2004-02-23 21:14:24 +09:00]] 版))