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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xhtml, php, mysql 
:(
    Опции темы
CscN
Дата 29.5.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые профессионалы и люди, разбирающиеся в "теме"!
Помогите разобраться или хотя бы на правильный путь направьте.
В XML я пока новичок. Прочитал книжку - вроде все понял. smile Про rss тоже понятно. И как на php извлекать и добавлять в документ данные понятно. А вот xhtml... 
Суть проблемы.
Есть у меня xml-документ (данные главной страницы сайта):
Код

<?xml version="1.0" encoding="windows-1251" ?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<data>
    <title>Заголовок страницы</title>
    <main_data>Основной текст страницы</main_data>
</data>


Есть xsl-стиль:
Код

<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
    <title>
        <xsl:value-of select="data/title" />
    </title>
</head>
<body>
    Добро пожаловать!<br />
    <xsl:value-of select="data/main_data" />
</body>
</html>
</xsl:template>

</xsl:stylesheet>


Соответственно XSLT-процессор обрабатывает исходный xml-документ, используя xsl-таблицу стилей.

И вот у меня возникает несколько вопросов:
1. Как сделать так, чтобы при просмотре в браузере исходного кода, был не исходный xml-документ, а xhtml-разметка? Видимо, на сервере должен быть отдельный xslt-процессор?  Ещё:  для того, чтобы попасть на главную страницу сайта, пользователь должен ввести, к примеру, www.mysait.ru/index.html, а мой xml-документ имеет расширение xml. Как решить этот вопрос.
2.  Например, вместо того, чтобы брать основное содержимое страницы из xml-файла При помощи таблицы стилей (<xsl:value-of select="data/main_data" />), я хочу сделать запрос к базе данных mysql при помощи php. Куда мне нужно помещать php-код?

Спасибо!
p.s.
xml и xsl документы находятся на сервере.

Это сообщение отредактировал(а) CscN - 29.5.2008, 13:36
PM MAIL   Вверх
ibnteo
Дата 29.5.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нужно на сервере производить XSLT-трансформацию, если это делать в PHP, то можно через  mod_rewrite ловить обращения к .xml файлам, получив имя файла в $_SERVER['REDIRECT_URL'], и вытащив из него имя XSLT-файла (то что в <?xml-stylesheet type="text/xsl" href="style.xsl"?>), как это сделать поищи сам, делаем трансформацию в выходной поток:
main.php:
Код

$xml = new DomDocument();
$xml->load($_SERVER['REDIRECT_URL']);
$xslt = new DomDocument();
$xslt->load('style.xsl');
$proc = new XsltProcessor();
$proc->registerPHPFunctions();
$proc->importStylesheet($xslt);
$proc->transformToURI($xml, 'php://output');


.htaccess:
Код

RewriteEngine On
RewriteRule $.*\.xml$ main.php
DirectoryIndex index.xml # <- а это ответ на второй вопрос


По поводу использования PHP из XSLT смотри php:function в XSLT:
Код

<xsl:value-of xmlns:php="http://php.net/xsl" select="php:function('ucfirst', string(uid))"/>


PM MAIL   Вверх
CscN
Дата 29.5.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо Большое! 
Вобщем, как вариант, это использование DOM-функций. А ловить запросы к xml-файлам даже не придется, потому что запросы пользователи будут делать к php-скрипту.
НО! Я ещё имел ввиду немного другое. Можно ли при помощи xsl-файла выводить в xhtml данные не только из xml-файла, но и из БД? Или сначала нужно из БД в xml, а потом уже при помощи DOM-функций сгенерировать xhtml, используя xml-файл и xsl-стили? 

Это сообщение отредактировал(а) CscN - 29.5.2008, 19:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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