Javascript XPath, Attriubte

看了庄表伟的AjaxFastLane, 加上Dlee的一些指点。
大致对Javascript 操作 XPath 有了 了解。

IE里面的XPath操作类似于 DOM4J (Jaxen)。
selectNodes,  selectNode, 等。根据method name区分目标结果类型。

Mozilla, Firefox的XPath操作类似于JDK的XPath。
evaluate( ... returnType ...)  根据returnType 参数区分目标结果类型。

有些XPath Wrapper (比如 AjaxFastLane 里面Dlee 提到的, code里面包含的xpath.js ),把Mozilla的XPath操作包装为 IE XPath way.

这个资料里面也有类似的做法。
http://www.chinahtml.com/webdesign/3/2006/javascript-11401633863582.shtml

关于Mozilla的XPath用法。这里是我查到的资料。
http://developer.mozilla.org/en/docs/Introduction_to_using_XPath_in_JavaScript
http://kb.mozillazine.org/XPath

这里是JavaScript DOM API。
http://krook.org/jsdom/

对比了各方面的Code Sample。
得出的结论,如同人们常说的,魔鬼都在细节中。

最麻烦的细节,就是Attribute了。Attribute是一种很特殊的Node。
DOM里面定义为NamedNodeMap。JDK里面基本是操作NamedNodeMap。
一些语言的实现,支持了Element Node对Attribute的操作。

语言和语言之间,browser和browser之间,对这个Attriubte的操作支持 (document.createAttribute() , add, set, remove),似乎都有细节区别。目前还没有理出头绪。

你可能感兴趣的:(JavaScript,jdk,IE,firefox)