![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
koss |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
Привет всем!
Дано: 1. Документ person.xml. 2. Две таблицы стилей: pers1.xsl и pers2.xsl. 3. Две CSS таблицы: style1.css и style2.css. Допустим, в настоящий момент есть связка: person.xml->pers1.xsl->style1.css. Т.е. на экране я вижу страничку, оформленную в одном стиле. Вопрос: Как реализовать переход к другому оформлению странички (person.xml->pers2.xsl->style2.css) в "прямом" эфире. Т.е. пользователь кликает к-нить кнопку и происходит смена дизайна (а контент остается)? Я, собственно, не в курсе, как надо делать в идеале, поэтому css+xsl+xml выбрал по своему усмотрению. Т.е. м.б. существует более красивое решение поставленной задачи. В любом случае рассчитываю на помощь... ![]() Заранее спасибо! |
|||
|
||||
3,14 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Нужно чтоб person.xml генерировался каким-то скриптом.
Пользователь передаёт информацию серверу какой интрефейс ему нужен (пусть это будет пар-р skin_id): skin_id = 0 (по умолчанию) - person1.xsl skin_id = 1 - person2.xsl скрипт смотрит если пришёл skin_id = 1, вставляет в начало person.xml такую строку:
Иначе:
Теперь о css: В person1.xsl ставишь строчку:
ну а в person2.xsl соответсвенно:
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||||
|
|||||||||
koss |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
Спасибо! Будем ваять скрипт...
P.S. Кстати, а рационально ли решать такую проблему средствами XML? Интересно было бы узнать мнение спецов... Это сообщение отредактировал(а) koss - 18.11.2005, 12:39 |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
koss, рационально,
1) трафик экономиться 2) можно прикрутить GUI клиентовый Но емть и проблемма: не всеми браузерами поддерживается. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
koss |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
В общем получилась такая штука:
1. Файл index.html:
2. Файл person.xml:
В html-е есть две функции, которые при нажатии изменяют элемент <DOB>. Используется объектная модель xml документа. В общем, это как пример, я пытаюсь выразить идею вопроса. Вопрос: Каким образом (используя объектную модель xml документа), получить доступ к строке
Хочу выводить в окно браузера непосредственно xml документ, который связан с таблицами xsl (для своего дизайна - своя), которые выглядеть должны так: persons.xsl
persons2.xsl
![]() И, когда чел заходит на мою страничку, он видит сайт в одном оформлении (которое я установил по умолчанию). Потом он жмакает кнопку и выполняется функция смена дизайна, заменяется строчка в xml документе и изменяется разметка, оформление, цвета, а сам контент не подгружается... Подскажите плиз... ![]() |
||||||||||
|
|||||||||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Что за обьектная модель? -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
koss |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
Объектная модель xml документа - Document Object Model (DOM). DOM cостоит из группы программных объектов, представляющих различные компоненты xml-документа.
DOM хранит записи в иерархической, древовидной структуре, отражающей иерархическую структуру XML-документа. И вы можете использовать ее для доступа к любым компонентам XML-документа, включая элементы, атрибуты, инструкции по обработке, комментарии... В примере, который я привёл выше, я с помощью функции:
Сначала подключаю xml. Потом, получаю доступ к узлу DOB. Т.е.: сначала мы двигаемся из коревого элемента к первому потомку (childNodes(0)) первого уровня вложенности. Это узел <person> с именем Алина. Находясь в этом узле получаю доступ к узлу DOB: childNodes(2). А потом пользуюсь свойством text и меняю текстовое содержимое данного элемента на YES!. Причём, изменения не происходят в самом файле. Потом в переменную title помещаю всё содержимое первого потомка и строками
задаю связь с xml, и содержимое переменной title связываю с элементом [b]<span>/[b]. Я пользовался мануалами: 1. XML. Шаг за шагом. 2. Лекции по DOM XML. Но нигде не сказано, как получить доступ, используюя механизм DOM, к строке, в которой устанавливается связь с xsl... Это сообщение отредактировал(а) koss - 24.11.2005, 20:44 |
||||
|
|||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Вроде нужно использовать
Если нужно подробнее спроси в форуме по JavaScript Хотя на мой взгляд генерировать XML на стороне клиента по крайней мере странно, обычно XML фсё же формируют на стороне сервера, иначк просто смысл теряется. Это сообщение отредактировал(а) 3,14 - 28.11.2005, 13:16 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
koss |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
Нет. Документ уже существует, он лежит на сервере. Клиент его получает полностью. Один раз, при первом посещении. Потом делает с ним, что хочет: меняет оформление (для печати, или разные стили отображения в браузере), сортирует, ищет, меняет отображаемые поля и т.д.
Т.е. не происходит постоянного обмена межу С и К: запрос-обработка-ответ. Экономится трафик и снижается нагрузка на сервер. Клиент (при желании) просто дополучает доп. инфу в виде xsl. И смысл не теряется. Как раз наоборот, используем одну из особенностей XML... Разве нет? |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Нет смысла использовать XML, можно просто обойтись JavaScript и получить всё тоже самое.
Основная идея использования XML + XSLT разделить офрмление и содержание, у тебя же вроде этого не происходит. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
koss |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 18.10.2005 Где: Москва Репутация: нет Всего: нет |
Да ладно!
![]() XML + XSLT + JavaScripts - вот динамика в чистом виде + независимость контента от дизайна... Это сообщение отредактировал(а) koss - 29.11.2005, 17:02 |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
+ серверные скрипты (на выбор) -------------------- Теперь при чем :P |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |