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

Поиск:

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


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



у меня дома денвер с PHP 4.4.4, на хостинге - PHP 5.2, что делать-то?

Добавлено через 2 минуты и 2 секунды
Цитата(Alx @  16.4.2007,  15:45 Найти цитируемый пост)
и как сделать, чтобы работало и в 4 и в 5 версиях?.. 

копать в сторону PECL.. только ребята из php очень не советуют этого делать, говорят всем переходить на DOM (php5).. а какое примерно процентое соотношение php4 и php5 на современных хостингах стоит? я хочу сказать, можно ли забивать на php4 совсем?


--------------------
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 16.4.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Чтобы начать работать, нужно понять каки всё это работает. Софт практически не нужен. Главное чтобы сервер выдавал ХМЛ, а как он это делает, через ДОМ, шаблон или просто print - пофиг.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Alx
Дата 16.4.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



как я понимаю, поддержка xslt ни в domxml ни в dom не присутсвует? :(

Добавлено через 3 минуты и 22 секунды
Цитата(sergejzr @  16.4.2007,  16:14 Найти цитируемый пост)
Чтобы начать работать, нужно понять каки всё это работает. Софт практически не нужен. Главное чтобы сервер выдавал ХМЛ, а как он это делает, через ДОМ, шаблон или просто print - пофиг. 

мне нужно (по крайней мере сейчас):

- загрзузить xml-файл
- применить к нему xslt-форматирование
- вывести xhtml

например так:

Код

<html>
<head>
<title>HTML + XML (server-side (PHP) parsing)</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<b>here comes the result of works.xml & sheet.xsl generated code</b>
<?
// xml + xslt => xhtml
?>
</body>
</html>

....


--------------------
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 18.4.2007, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Alx @  16.4.2007,  16:08 Найти цитируемый пост)
у меня дома денвер с PHP 4.4.4, на хостинге - PHP 5.2, что делать-то?

Самый лучший вариант, это поставить дома нормальный сервак, т.е. апач+php5.2.1 ну и что еще надо MySQL ли PostgreSQL.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Alx
Дата 20.4.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



в общем так. поставил на свой денвер php5. скачал с сайта denwer.ru
устанавливаешь, больше ничего делать не надо, все уже включено.
пошёл на php.net, нашел DOM, SimpleXML и XSLTProcessor.
последние два вывели мне helloworld:

Цитата(Alx @  16.4.2007,  16:14 Найти цитируемый пост)
мне нужно (по крайней мере сейчас):

- загрзузить xml-файл
- применить к нему xslt-форматирование
- вывести xhtml


Код

$xml = simplexml_load_file('tree.xml');
$xsl = simplexml_load_file('sheet.xsl');

$xslt = new XSLTProcessor(); // объект для XSL-преобразований
$xslt->importStyleSheet($xsl); // ему нужна xsl-таблица...

echo $xslt->transformToXML($xml); // ... и xml-древо


http://alx.vingrad.ru/dev/xml/php5

только вопрос. почему на выходе кодировка UTF-8?
в encoding обоих XML-файлов прописана windows-1251..


Это сообщение отредактировал(а) Alx - 20.4.2007, 00:30


--------------------
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 20.4.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Ну все правильно, SimpleXML всегда приводит к юникоду. Точно не помню, можно или нет, но ссудя по всему нужно через iconv() прогонять.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
dm9
Дата 20.4.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



Цитата(Alx @  20.4.2007,  01:29 Найти цитируемый пост)
только вопрос. почему на выходе кодировка UTF-8?в encoding обоих XML-файлов прописана windows-1251..


Намёк: <xsl:output...>

PM MAIL ICQ   Вверх
Alx
Дата 20.4.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



dm9
о, благодарю тебя, друг мой! smile

Добавлено через 2 минуты и 16 секунд
а что, если я просто с xml-файлом работаю? без xslt.. все равно глюки с кодировкой..


--------------------
PM MAIL WWW ICQ   Вверх
check
Дата 5.5.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня вот такой вопрос возник... Почему лучше и правильнее(если это действительно лучше и правильнее) генерить XML средствами DOM(ну или SimpleXML,  кому что больше нравится),   вместо того чтобы формировать его как строку.   

С парсингом всё понятно,   а вот с генерацией  -  тут преимущества DOM для меня неочевидны.  Точнее говоря я не вижу их вообще.
 
Я в данный момент пишу для себя движок,  в котором шаблонная часть 
будет реализована с помощью XML-XSLT. 
Так вот сейчас XML у меня генерится следующим образом
Код

    $news = $dm->SelectNews(); //достаём то что нужно из БД 
    for ($i=0; $i < count($news); $i++) {
        $news[$i] = "<article id=\"".$news[$i]['id']."\">\n".
        "<date>".$news[$i]['date']."</date>\n".
        "<title>".$news[$i]['title']."</title>\n".
        "<visits>".$news[$i]['visits']."</visits>\n".
         "<comment>".$news[$i]['comment']."</comment>\n".
         "</article>\n";
    }
    $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<news>\n".
    implode("", $news)."</news>";


Дальше уже работаю с ним через DOM: достаю нужный xsl-шаблон,
выполняю преобразование, вывожу результат.
Код

    $domxml = new domDocument();
    $domxml->loadXML($xml);
        $xsl = file_get_contents("../xml/news.xsl");
    $domxsl = new domDocument();
    $domxsl->loadXML($xsl);
    $xsl = new xsltProcessor();
    $xsl->importStylesheet($domxsl);
    echo $xsl->transformtoXML($domxml);  


Вот мне и интересно,  если я переделаю генерацию xml-я средствами DOM,  какие выгоды это мне даст?
Ну кроме того,  что код будет более чистым, поскольку в PHP-коде не будет вообще никаких тэгов, не только ХэТэМээЛьных, но даже и ИксЭмЭльных.  А ради этого, вобщем, весь сыр-бор и городится  smile 
По мере изложения вопроса, сам же начал на него отвечать...
Но всё-таки - что ещё?   Почему это не надо делать так, как у меня сейчас сделано?
А как, например , с производительностью?
Я почти уверен,  что генерация DOM-ом работает медленнее.  Или нет?  
PM MAIL   Вверх
dm9
Дата 7.5.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



check, производительность - ХЗ, надо думать, а лучше пробовать.

А вот насчёт корректности кода - когда ты генерируешь XML строкой, ты имеешь шанс нарваться на какую-то ошибку в формировании этой строки. Например, пропустишь закрытие тэга. И обнаружишь это отнюдь не сразу - а (по закону подлости) тогда, когда проект будет находиться в эксплуатации. А в процессе тестирования ты просто не войдёшь в тот 'if', который содержит ошибочный код.

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


 




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


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

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