![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
Доброго времени суток.
Помогите пожалуйста разобраться. У меня имеется HTML файл:
На выходе *** должны замениться на данные из XML файла с помощью правил из отдельного файла XSL. Правильней было бы использовать XSL код внутри приведенного мной HTML и сделать XSL+XML=HTML, НО идея такова: 1. Сгенерировать страницу HTML с помощью XSL+XML (выход - мой пример) не хочеться делать для них потоянно преобразование, т.к. именно эти данные будут меняться очень редко допустим header(меню сайта) 2. Сделать преобразование для динамически изменяемых данных заменить *** на нужные мне данные Если, то что я задумал изврат - пожалуйста подправте ![]() Хочеться узнать ваше мнение и предложения. |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 7 Всего: 110 |
предложение до смеха простое:
конечно, это нельзя назвать в полной мере "неиспользование XSL кода в HTML шаблоне", но по смыслу оно так - весь код можно вынести куда угодно и менять там сколь угодно часто... -------------------- qqq |
|||
|
||||
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
maxim1000, а как можно при первой трансформации получить документ с xslt тєгами?
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 7 Всего: 110 |
упс... пропустил фразу:
в принципе, подозреваю, что как-то можно это сделать можно попробовать прямо так и написать: <xsl:call-template name="somename1"/> но только в шаблоне, который генерирует "описательный" HTML (который в примере), изменить название пространства имён на каоке-нибудь другое вместо xsl (просто сейчас нет под рукой инструментария, чтобы проверить) ну а если совсем никак не получится - всегда можно заменить вызов шаблона на <mycalltemplate1> а потом обработать HTML XSL шаблоном, который копирует исходный XML, но когда встречает <mycalltemplate...> выполняет соответствующие действия... -------------------- qqq |
|||
|
||||
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
Когда я заменяю на <mycalltemplate>
не проходит даже первое преобразование - выскакивает ашипка. ![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 7 Всего: 110 |
хм... а какая ошибка там может быть?
в чём выражается? Добавлено @ 20:33 только, конечно же, <mycalltemplate/> (в смысле закрыть надо) если и так не работает, то непонятно... -------------------- qqq |
|||
|
||||
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
Звыняйтэ - пока новичек ) нужно было закрыть тэг.
Но всё равно отошли от темы. |
|||
|
||||
Beard |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: 7 Всего: 9 |
Если я правильно понял - вы хотите сделать два последовательных преобразования:
После первого преобразования получить XSLT-документ, а на втором уже его полностью "добить" до HTML:
Очень просто:
Или завести, как советовал maxim1000, фиктивный неймспейс myxsl (чтоб не городить кучу xsl:elements и xsl:attribute), а потом сделать:
Только мне кажется, что заметного выигрыша в скорости не получится (или такой способ предназначен для других целей?), да и динамически изменяемые данные лучше менять другим способом (JavaScript, например). Лучше изложите более подробно задачу - что дано, чего вы хотите добиться, с помощью чего... |
||||||
|
|||||||
jsse |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
Вобщем задача сводиться к тому - чтобы уменьшить кол-во запросов к БД.
Думаю делать это путем генерации главного шаблона - в котором будет кэшироваться меню, перевод на другие языки и т.п.(допустим каждые 30 минут), потом делать преобразование с динамичискими данными - например контент сайта. Подскажите как? |
|||
|
||||
Beard |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.7.2005 Где: Санкт-Петербург Репутация: 7 Всего: 9 |
Все же предложить оптимальный (или близкий к этому) вариант сложно из ваших данных, т.к. не понятно, чем мы пользуемся, почему и для чего (ну кроме как "уменьшить кол-во запросов к БД")... Вот вы построили шаблон-каркас по какому-то XML-ку (который, как я понял, строится по запросу из БД), а динамически изменяемые данные откуда будут браться - из того же XML-ка или нет? И чем мы пользуемся - PHP, JSP или еще чем-нить? Может нам XML вообще не стоит генерить? И почему все упирается в ограничение запросов к БД? Может как раз наоборот лучше перекинуть нагрузку на СУБД, чем выполнять трансформации? Вобщем - "Хочу все знать!". Это я не придираюсь, а просто действительно хочется подумать над проблемой и предложить что-нить стоящее, а отправной-то точки и нет! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |