![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
artuska |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Здравствуйте!
Есть XML с такой вот структурой:
Это данные для подсказки в поле поиска (как в Гугле - вводишь слово, а под инпутом появляются возможные варианты того, что ты ищешь). Так вот, как используя XSL выбрать все слова, начинающиеся на, например, букву 'o'? На выходе должен быть вот такой HTML код:
Вот мой вариант:
Или выборка по шаблону вообще по-другому делается? Это сообщение отредактировал(а) artuska - 12.4.2010, 20:55 |
||||||
|
|||||||
diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Если дело в XPath выражении, то можно написать так
Только, честно говоря, не знаю чего ты этим добьёшься. Преобразование происходит один раз, когда документ запрашивается с сервера, а тебе надо, чтобы это происходило постоянно в интерактивном режиме. Все эти возможности уже давно реализованы и не один раз в различных плагинах для яваскрипт-фреймворков, а xslt тут тебе не поможет. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||
|
|||||
artuska |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
Вот, отлично, это то, что надо! Ну а что значит «что добьешься»? — пользователь вводит букву "А", посылается АЯКС запрос к ПХП файлу, который и оперирует XML'ом и XSL'ом и возвращает готвый код подсказок. Вопрос следующий — вот если пользователь ввел "А", то слова на букву "А" найдутся, а вот на букву "а" — нет. Как сделать, чтобы //suggestions/item[starts-with(text(), 'o')] не зависела от регистра, чтобы и маленькие и большие буквы искала? UPD: Хм, а где ты вычитал про функцию starts-with()? — здесь, например, в упор не вижу. Это сообщение отредактировал(а) artuska - 12.4.2010, 23:56 |
|||
|
||||
diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Можно, конечно, но чойт мне кажется это как-то ![]()
Средствами xslt вроде никак, но раз это всё на пхп делается - переводи в нижний(или верхний) регистр на пхп и только потом посылай в обработку. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||
|
|||||
artuska |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 5.5.2007 Репутация: нет Всего: нет |
||||
|
||||
magelan |
|
||||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 7 Всего: 16 |
в XSL все можно... только это "дорогая" операция.
P.$. Господа, код привожу не для этой задачи, и не чтобы выпендриться, просто для общей инфы, проблема с регистрами достаточна частая при обработке. P.P.$. Дядя Вова абсолютно прав, для этой задачи надо использовать что-то шустрее чем XSLT в идеале надо возвращать только данные для вывода:
которые на клиенте разбираются в массив для вывода одним вызовом скриптовой функции .split(';'); Это сообщение отредактировал(а) magelan - 14.4.2010, 12:10 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |