有誰能夠讓我在不同場景下對XPath和DOM進行全面的性能比較嗎?我已經閱讀了一些問題,如xPath vs DOM API, which one has a better performance和XPath or querySelector?。他們都沒有提到具體的案例。這是我可以開始的一些事情。XPath vs DOM的性能
- 不涉及迭代。 getElementById(foobar)vs // * [@ id ='foobar']。前者比後者要快嗎?如果後者被優化了,例如/ HTML /體/格[@ ID = '富'] /格[@ ID = 'foobar的']?
- 涉及迭代。 getElementByX然後遍歷子節點,XPath生成快照,然後遍歷快照項目。
- 軸涉及。 getElementByX然後遍歷下一個兄弟VS //下面的兄弟:: foobar。
- 不同的實現。不同的瀏覽器和庫以不同的方式實現XPath和DOM。哪個瀏覽器的XPath實現更好?
正如xPath vs DOM API, which one has a better performance中的答案所示,當XPath保證優化時,一般程序員可能在執行復雜任務(例如涉及多軸)時出現問題。因此,我的問題只關心可以通過兩種方式完成的簡單選擇。
感謝您的任何評論。
與幾乎所有關於性能和優化的問題一樣,它將取決於您的具體情況和內容。答案是「用您的數據來分析您的應用程序,並選擇適合您的最適合您的應用程序」。另外,你問了太多的一般問題。這可能應該被視爲「不是真正的問題」,如果其他人認爲我會加入他們的投票。 – 2011-03-12 00:43:39
我個人的經驗是,DOM通常比XPath或選擇器API實現(例如Firefox)快10倍以上。但是,由於XPath接受上下文節點,因此最好使用DOM選擇一個「穩定的」父節點,並使用XPath作爲其餘作業。這可以是高性能和強大的。 – 2011-03-25 19:37:13
XPath可以構建在非DOM API上,例如,vtd-xml的xpath實現建立在虛擬標記描述符之上... – 2013-06-13 23:42:17