Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTML+XML+XSL=HTML 
:(
    Опции темы
jsse
Дата 2.6.2006, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



  Доброго времени суток.
Помогите пожалуйста разобраться. У меня имеется HTML файл:
Код

  <html>
    <head>
      <title>***</title>
    </head>

    <body>
      <p>header</p>
      <h1>***</h1>
      <p>
         ***
      </p>
      <p>footer</p>
    </body>
  </html>


На выходе *** должны замениться на данные из XML файла с помощью правил из отдельного файла XSL.

Правильней было бы использовать XSL код внутри приведенного мной HTML и сделать XSL+XML=HTML,
НО идея такова:

1. Сгенерировать страницу HTML с помощью XSL+XML (выход - мой пример)
не хочеться делать для них потоянно преобразование, т.к. именно эти данные будут меняться очень редко допустим header(меню сайта) 
2. Сделать преобразование для динамически изменяемых данных
заменить *** на нужные мне данные

Если, то что я задумал изврат - пожалуйста подправте  smile 
Хочеться узнать ваше мнение и предложения. 
PM WWW Skype   Вверх
maxim1000
Дата 2.6.2006, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 7
Всего: 110



предложение до смеха простое:
Код

  <html>
    <head>
      <title>
        <xsl:call-template name="somename1"/>
      </title>
    </head>

    <body>
      <p>header</p>
      <h1>
        <xsl:call-template name="somename2"/>
      </h1>
      <p>
        <xsl:call-template name="somename3"/>
      </p>
      <p>footer</p>
    </body>
  </html>

конечно, это нельзя назвать в полной мере "неиспользование XSL кода в HTML шаблоне", но по смыслу оно так - весь код можно вынести куда угодно и менять там сколь угодно часто... 


--------------------
qqq
PM WWW   Вверх
jsse
Дата 2.6.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



maxim1000, а как можно при первой трансформации получить документ с xslt тєгами? 
PM WWW Skype   Вверх
maxim1000
Дата 2.6.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 7
Всего: 110



упс... пропустил фразу:
Цитата(jsse @  1.6.2006,  23:23 Найти цитируемый пост)
Сгенерировать страницу HTML с помощью XSL+XML (выход - мой пример)

в принципе, подозреваю, что как-то можно это сделать
можно попробовать прямо так и написать:
<xsl:call-template name="somename1"/>
но только в шаблоне, который генерирует "описательный" HTML (который в примере), изменить название пространства имён на каоке-нибудь другое вместо xsl
(просто сейчас нет под рукой инструментария, чтобы проверить)

ну а если совсем никак не получится - всегда можно заменить вызов шаблона на <mycalltemplate1>
а потом обработать HTML XSL шаблоном, который копирует исходный XML, но когда встречает <mycalltemplate...> выполняет соответствующие действия... 


--------------------
qqq
PM WWW   Вверх
jsse
Дата 2.6.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



Когда я заменяю на <mycalltemplate>

не проходит даже первое преобразование - выскакивает ашипка.  smile  
PM WWW Skype   Вверх
maxim1000
Дата 2.6.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 7
Всего: 110



хм... а какая ошибка там может быть?
в чём выражается?

Добавлено @ 20:33 
Цитата(jsse @  2.6.2006,  19:04 Найти цитируемый пост)
<mycalltemplate>

только, конечно же, <mycalltemplate/> (в смысле закрыть надо)
если и так не работает, то непонятно... 


--------------------
qqq
PM WWW   Вверх
jsse
Дата 4.6.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



Звыняйтэ - пока новичек ) нужно было закрыть тэг.

Но всё равно отошли от темы. 
PM WWW Skype   Вверх
Beard
Дата 5.6.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 7
Всего: 9



Если я правильно понял - вы хотите сделать два последовательных преобразования:
После первого преобразования получить XSLT-документ, а на втором уже
его полностью "добить" до HTML:
Цитата(jsse @  2.6.2006,  19:05 Найти цитируемый пост)
а как можно при первой трансформации получить документ с xslt тєгами?  

Очень просто:
Код

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <xsl:element name="xsl:stylesheet">
         <xsl:attribute name="version">1.0</xsl:attribute>
         <xsl:element name="xsl:template">
            <xsl:attribute name="match">/</xsl:attribute>

            <html>
               <head>
                  <title>
                      <xsl:element name="xsl:call-template">
                        <xsl:attribute name="name">mycalltemplate1</xsl:attribute>
                     </xsl:element>
                 </title>
               </head>

               <body>
                  <p>header</p>

                  <h1>
                     <xsl:element name="xsl:call-template">
                        <xsl:attribute name="name">mycalltemplate2</xsl:attribute>
                     </xsl:element>
                  </h1>
                ...
               </body>
            </html>
         </xsl:element>
      </xsl:element>
....
   </xsl:template>
</xsl:stylesheet>


Или завести, как советовал maxim1000, фиктивный неймспейс myxsl (чтоб не городить кучу xsl:elements и xsl:attribute), а потом сделать:
Код

        <xsl:element name="xsl:namespace-alias"> 
                <xsl:attribute name="stylesheet-prefix">myxsl</xsl:attribute>
                <xsl:attribute name="result-prefix">xsl</xsl:attribute>
        </xsl:element>


Только мне кажется, что заметного выигрыша в скорости не получится (или такой способ предназначен для других целей?),
да и динамически изменяемые данные лучше менять другим способом (JavaScript, например).

Лучше изложите более подробно задачу - что дано, чего вы хотите добиться, с помощью чего...

 
PM MAIL   Вверх
jsse
Дата 5.6.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 1.5.2006
Где: Кривой Рог

Репутация: нет
Всего: 2



 Вобщем задача сводиться к тому - чтобы уменьшить кол-во запросов к БД.

Думаю делать это путем генерации главного шаблона - в котором будет кэшироваться меню,
перевод на другие языки и т.п.(допустим каждые 30 минут), потом делать преобразование с динамичискими данными - например контент сайта.


Цитата(Beard @  5.6.2006,  17:51 Найти цитируемый пост)
и динамически изменяемые данные лучше менять другим способом 


Подскажите как?
 
PM WWW Skype   Вверх
Beard
Дата 6.6.2006, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 7
Всего: 9



Цитата(jsse @  5.6.2006,  22:04 Найти цитируемый пост)
Вобщем задача сводиться к тому - чтобы уменьшить кол-во запросов к БД.

Все же предложить оптимальный (или близкий к этому) вариант сложно из ваших данных, т.к.
не понятно, чем мы пользуемся, почему и для чего (ну кроме как "уменьшить кол-во запросов к БД")...

Вот вы построили шаблон-каркас по какому-то XML-ку (который, как я понял, строится
по запросу из БД), а динамически изменяемые данные откуда будут браться - из того же XML-ка или нет?
И чем мы пользуемся - PHP, JSP или еще чем-нить? Может нам XML вообще не стоит генерить?
И почему все упирается в ограничение запросов к БД? Может как раз
наоборот лучше перекинуть нагрузку на СУБД, чем выполнять трансформации?

Вобщем - "Хочу все знать!". Это я не придираюсь, а просто действительно хочется подумать
над проблемой и предложить что-нить стоящее, а отправной-то точки и нет! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0969 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.