Работа с XPath в JS. Нужно кому?

alekciy

Новичок
Работа с XPath в JS. Нужно кому?

Работал я в PHP с DOM моделью XML документов. Очень интересная штука. И есть там очень удобные функции работы с XPath выражениями для навигации по дереву документа. Когда я стал баловаться AJAX-ом, то очень удивился, что в JS нет кроссбраузерного решения для работы с подобными выражениями. Каждый браузер держит XPath и каждый по своему. А хочется универсальности. Можно конечно на каждый элемент id вещать, но не очень удобно это.

В общем так и появилась идея написать библиотеку, которая по возможности работала бы в любом браузере. Вот и написал требуемый мне функционал. Может так же будет полезна: http://alekciy.ru/projects/jsxpath/jsxpath.html
 

Alexandre

PHPПенсионер
штука. И есть там очень удобные функции работы с XPath выражениями для навигации по дереву документа. Когда я стал баловаться AJAX-ом, то очень удивился, что в JS нет кроссбраузерного решения для работы с подобными выражениями
ничего удивительного, у каждого браузера свой XML парсер.


ссылка интересная, спасибо.
 

alekciy

Новичок
Ага, я вчера его тоже нашел. Но данная либа писалась когда я про это не знал, а то бы и не делал, может быть... Хотя нужно еще будет посглядет, что там.
 

alekciy

Новичок
denver
Сейчас посмотрел более спокойно. Ибо уже дома... В общем как я понял это либа написанная Дмитрием Глазковым (http://glazkov.com/archive/2004/04/06/168.aspx опять наши что ли?...) и модифицированная Mehdi Hassan-ом. Но кроссбраузерным это решение назвать нельзя, т.к. так юзается evaluate метод который Опера не держит.


diamond_krnl
А ха ха! Где же ты раньше был? )))) да, посмотрел, рульная библиотека! Респект! Хорошая либа, да еще нормально документированная с нормальным API. Не удивительно, что поиск ни чего путного не выдавал и я её не нашел. Ибо назвали то как! Да и keywords не прописаны )))
Из минусов с ходу вижу, что таже функция обработки набора узлов не поддерживаются в предикатах. Ни position() ни last(). Соответсвенно и операторы сравнения не кажут... да и позиции элементов указываются не так, как спецификация предписывает.
В общем возмножно стоит поключиться к создателям jQuery.

Кстати посмотрел исходник... ужос! все в одну строку... но благо сурцы имеются... стало любопытно, как же это он так ужимается с 54 кб до 19? Ведь дело не только в удалении все коментариев и именования все переменных однобуквенными именами... там вообще какое хитрое преобразование и работает гланвое! :cool: Может в курсе, как это работает?
 

diamond_krnl

pure-php
alekciy

библиотека что надо, но по скорости тормозновата на всяких "интерактивах". :)
хмм итераторы интересная штука, но честно не знаю зачем нужны в реальных задачах, хотя в CSS есть всякие first-child, last-child... тем более через each можно что угодно натворить :)

исходники они "пресуют" упаковщиком Дина Эдвардса: http://dean.edwards.name/packer/
 

alekciy

Новичок
diamond_krnl
Респект! Не знал, что JS можно паковать безболезнено.
 

alekciy

Новичок
Solid
А что, работает в Opera? В FF понятно, там вообще встроеный механизм есть.... для IE это либа тоже эмулирует работу... а Опера.... Нескейп? И операторы сравниения поддерживаются?... что-то на найду ни как.
 

alekciy

Новичок
)) нравиться мне это "This project currently has no downloads." )))
Хотя вот тут что-то положили http://ajaxslt.googlecode.com/svn/trunk/ видимо оно...
 

Solid

Drosera anglica
alekciy
Именно там, к тому же обновление совсем свежее, несколько месяцев назад.
 
Сверху