| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Непонятки с XPath и Position |
| Автор: SelenIT 7.4.2007, 20:56 | ||||||
| Продолжение недавней моей http://forum.vingrad.ru/topic-144896.html о разворачивании рекрсивного дерева одноименных элементов в плоский список. Получить плоскую структуру удалось, но теперь еще нужно для каждой исходной ноды получить XPath-путь к ней. Предупреждая вопросы, что за изврат я делаю - это JS-меню для навигации по фактически XML-ной базе данных со вложенной структурой, по клику на пункты будут выбираться определенные подэлементы соответствующих нод. При попытке получить желаемое, преобразуя файл
с помощью такого XSL:
я получил следующее:
Никак не могу взять в толк, почему корневой элемент у меня вдруг везде оказался обозначен как /elem[2]? И что вообще я делаю неправильно? |
| Автор: Exception 8.4.2007, 16:46 | ||
|
| Автор: SelenIT 8.4.2007, 18:11 | ||
| Exception, еще раз спасибо, благодаря подсказкам решил свою задачу! А все-таки, почему без отдельного
|
| Автор: JVM 9.4.2007, 13:54 | ||
А у меня с первым xsl получается
Использую xsltproc. |
| Автор: Exception 9.4.2007, 13:55 |
| Интересно |
| Автор: SelenIT 9.4.2007, 15:41 |
| Я тоже тестил в браузерах (FF2 и IE6). Вообще-то, на самом деле нужно мне это преобразование только для IE, под Microsoft.XMLDOM. Но то, что такие разные браузеры сходятся в неожиданном результате, наводит на мысль, что вряд ли он расходится со стандартом (который я пока, увы, довольно слабо понимаю)... Заранее благодарен за ликбез! |
| Автор: JVM 9.4.2007, 17:28 | ||
| Если вы тестили через IE и FF, то все понятно почему у вас такой результат. У вас наверняка в исходном xml есть строчка подобная этой
так вот эта инструкция и есть ваш первый элемент - а elem уже второй. Чтобы управлять этим процессом рекомендую использовать <xsl:number> Используйте процессоры, а не проузеры |
| Автор: SelenIT 9.4.2007, 17:36 |
Точно! Есть такая строчка. Вот, значит, где обака порылась... сроду бы не подумал. JVM, огромное спасибо за разъяснение! Ну задача передо мной стоит - дело должно происходить на клиенте, не я ее ставил... А чем, собственно, Microsoft.XMLDOM не процессор? |
| Автор: JVM 10.4.2007, 08:38 |
| А есть ли примеры такого подхода? Хотел бы посмотреть. Дело в том что мне не понятны мотивы, которые перевешивают в пользу обработки xml на стороне клиента, а не на стороне сервера. |
| Автор: Exception 10.4.2007, 12:56 |
Например. XML загружается с сервера асинхронно. |
| Автор: JVM 10.4.2007, 17:29 |
| Exception, объясни поподробнее что это значит и какие дает преимущества. |
| Автор: Exception 10.4.2007, 18:04 |
| Скажем, мы реализуем autocomplete для текстбокса как в Google Suggest. В зависимости от запроса мы грузим с сервера XML с вариантами автозаполнения и динамически применяем к нему XSL. Грузить уже преобразованную версию слишком накладно, да и код логики сервера мешается с кодом отображения на клиенте. |
| Автор: JVM 11.4.2007, 09:16 |
| Почитал про Google Suggest, но так и не нашел, где речь идет об XSL. XML возвращается |
| Автор: Exception 11.4.2007, 15:48 |
А я о чём? К полученному XML применяется XSL и мы получаем готовый HTML-код. http://goog-ajaxslt.sourceforge.net/ |
| Автор: JVM 11.4.2007, 16:54 |
| Запутался Насколько понимаю это все таки не xslt-процессор, а просто некоторый обработчик xml имеющий узкое использование? |