打印本文 打印本文 关闭窗口 关闭窗口
给IE增加dom3xpath支持
作者:武汉SEO闵涛  文章来源:敏韬网  点击数899  更新时间:2009/4/25 0:44:46  文章录入:mintao  责任编辑:mintao

Dimitri Glazkov''''s html-xpath provides DOM level 3 XPath features for M$IE. I found it first from Sarissa docs which mentions it as complement to Sarissa.

Great, is it? But it still have some limits:

1. It only works for html document of current window!
Yes, M$IE xml DOM provides selectNodes/selectSingleNode, but these methods can not return number/boolean/string value. So I''''d rather insist on more full-desiged dom3xpath standard api.

2. It maybe have some ''''unsolvable'''' performance issues according to the author.

3. Due to short of getter/setter, it doesn''''t provide read-only properties as spec recommends, instead of result.xxxValue, it use java-style binding: result.getXxxValue(). This brings some inconvenient and trivial work when migrate codes from other implementation (ie. Mozilla).

I plan to overcome the 1st (in some degree, the 2nd) limit. Here is my work in process.

 

Appendix: my letter to Dimitri Glazkov

Great work! I want to use in in my product.
But it seems that u have no plan to improve it? What are "unsolvable performance issues"? If it is because of recursive calls of loadNode(), i think such codes can be dropped.
My initial requirement is XPath api for any document, not only html. So i modified some codes. After reading the codes, i have a question, why u must call selectNodes and transformNode method from document(what your _XPathMsxmlDocumentHelper.getDOM returns), every node have these two methods, so why not call result._contextNode.selectNodes or result._contextNode.transformNode ? And in such calling, u don''''t need to adjust expression or loadDocument at all.
Maybe I missed sth important :)

打印本文 打印本文 关闭窗口 关闭窗口