Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP + XML + XSLT 
:(
    Опции темы
Opik
Дата 20.6.2005, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Как я понял, современный сайт, созданный по последним технологиям должен быть в этой связке (ну и данные, например в MySQL) и на выходе XHTML.
c XML и тем более с XSLT не знаком, поэтому прошу Вас объяснить. Да, гугл ещё не закрыли, но не нашел примера, где это всё связано в одном примере. Допустим я хочу написать скрипт новостей.
news.php
Выделить всёкод PHP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
<?php
  $dsn 'mysql:dbname=test;host=127.0.0.1';
  $user 'root';
  $password '';
  try {
     $dbh new PDO($dsn$user$password);
     $sql 'SELECT * FROM `news` WHERE news_public = :public';
     $sth $dbh->prepare($sqlarray(PDO_ATTR_CURSOR, PDO_CURSOR_FWDONLY));
     $sth->execute(array(':public' =1));
     while($row $sth->fetch())
     {
// $row['news_title'] - название.
// $row['news_author_name'] - имя автора.
// $row['news_text'] - текст новости.
     }
  } catch (PDOException $e) {
     echo 'Connection failed: ' $e->getMessage();
  }
?>

Как и что организовывать далее?
PM MAIL Skype   Вверх
IZ@TOP
Дата 20.6.2005, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Мне тоже это очень интересно. Думаю что нужно создать XML документ в который добавлять поочередно ветки с новостями до получения необходимого результата:

Выделить всёРазметка HTML
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?xml version="1.0" ?>
<News>
    <Item id="1">
        <Title>Заголовок новости</Title>
        <Author>IZ@TOP</Author>
        <Text>текст новости</Text>
    </Item>
    ...
</News>


Далее рисуем свой XSLT шаблон либо используем РНР функции XSLT преобразования.

А вот конкретный пример был бы интересен smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 20.6.2005, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



IZ@TOP
Не, ну по отдельности я это всё понимаю примерно как ты, но я плохо представляю конечный продукт.
PM MAIL Skype   Вверх
IZ@TOP
Дата 20.6.2005, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



http://ru3.php.net/manual/ru/function.domx...esheet-file.php
Наверное примерно так и выглядит smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 20.6.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Выделить всёкод PHP
1:
2:
3:
4:
5:
6:
7:
8:
<?php
$xmldoc domxml_open_file("dom.xml");
$xsldoc  domxml_xslt_stylesheet_file ("dom.xsl");
$result  $xsldoc->process($xmldoc);
 print $result->dump_mem();
?> 

$xmldoc = domxml_open_file("dom.xml"); значит данные хранятся в xml файле, а нам нужно в базе.
PM MAIL Skype   Вверх
IZ@TOP
Дата 21.6.2005, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Opik, можно сделать тоже самое только с созданным документом, используй функции создания документа или загрузки его из памяти (читай переменной).

Выделить всёкод PHP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
<?php
$xmldoc domxml_new_xmldoc('1.0');
$docroot $xmldoc->add_root('News');
$newschild $docroot->new_child('article''');
$newschild->set_attribute('id'398);
$newschild->new_child('title''Title');
$newschild->new_child('author''Author name');
$newschild->new_child('newstext''Text news');
/* 
    // Если нужно просмотреть что у нас вышло, вызываем такой кусочек кода:
    // echo htmlspecialchars($xmldoc->dump_mem()); 
*/
// И далее
$xsldoc  domxml_xslt_stylesheet_file("style.xsl");
$result  $xsldoc->process($xmldoc);
print $result->dump_mem();
?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 21.6.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



IZ@TOP
вот это уже интереснее smile))
PM MAIL Skype   Вверх
IZ@TOP
Дата 21.6.2005, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Вот что у меня вышло:

Выделить всёкод PHP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
<?php
$xmldoc domxml_new_xmldoc('1.0');
$docroot $xmldoc->add_root('News');
$newschild $docroot->new_child('article''');
$newschild->new_child('date''12/31/2005');
$newschild->new_child('title''Title');
$newschild->new_child('author''IZ@TOP');
$newschild->new_child('newstext''XSL Templates rules! Ostalos` razobrat`sya s kodirovkami i vse budet rul`no!');
/* 
    // Если нужно просмотреть что у нас вышло, вызываем такой кусочек кода:
    // echo htmlspecialchars($xmldoc->dump_mem()); 
*/
// И далее
$xsldoc  domxml_xslt_stylesheet_file(dirname(__FILE__)."/style.xsl");
$result  $xsldoc->process($xmldoc);
print $result->dump_mem();
?>


-- style.xsl
Выделить всёРазвернуть кодРазметка HTML
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="article">
    <html>
    <head>
    <title>Today's greeting</title>
    <style>
        * {
            font-familyTahoma;
            font-size11px;
        }
    </style>
    </head>
    <body>
        <center>
        <div style="width:400;" align="justify">
            <b><xsl:value-of select="date"/></b> | <xsl:value-of select="title"/>
            <p><xsl:value-of select="newstext"/></p>
            <div align="right"><i><xsl:value-of select="author"/></i></div>
        </div>
        </center>
    </body>
</html>
</xsl:template>
</xsl:stylesheet>


Добавлено @ 00:50
осталось разобраться с циклами и условиями и можно брать шаблонную часть Vingrad CMS на себя smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 21.6.2005, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



правда сами шаблоны какие то странные smile)) короч почитать нужно.
PM MAIL Skype   Вверх
IZ@TOP
Дата 21.6.2005, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Opik, пожалуйста http://msdn.microsoft.com/library/en-us/xm...0f94488a1cf.asp читай сколько душе угодно. А я спать.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 21.6.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



с меня +
PM MAIL Skype   Вверх
Opik
Дата 21.6.2005, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Хотя всё равно ничего не ясно. как в ПХП5 работать с XML, а именно создавать на лету.
PM MAIL Skype   Вверх
IZ@TOP
Дата 21.6.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Opik, вечером поставлю и посмотрю что с этим можно сделать.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 21.6.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

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



Хотя поставил php_domxml.dll... функция domxml_new_doc работает а append_child ругается. хотя думаю моя вина. вообщем буду ещё тестить
PM MAIL Skype   Вверх
Gold Dragon
Дата 21.6.2005, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Opik
объясни как поставил, у меня что-то на всё ругается, может скачал что-то не то


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




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


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

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