| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: X технологии > PHP + XML + XSLT |
| Автор: Opik 20.6.2005, 02:41 | ||
| Как я понял, современный сайт, созданный по последним технологиям должен быть в этой связке (ну и данные, например в MySQL) и на выходе XHTML. c XML и тем более с XSLT не знаком, поэтому прошу Вас объяснить. Да, гугл ещё не закрыли, но не нашел примера, где это всё связано в одном примере. Допустим я хочу написать скрипт новостей. news.php
Как и что организовывать далее? |
| Автор: IZ@TOP 20.6.2005, 17:02 | ||
Мне тоже это очень интересно. Думаю что нужно создать XML документ в который добавлять поочередно ветки с новостями до получения необходимого результата:
Далее рисуем свой XSLT шаблон либо используем РНР функции XSLT преобразования. А вот конкретный пример был бы интересен |
| Автор: Opik 20.6.2005, 17:50 |
| IZ@TOP Не, ну по отдельности я это всё понимаю примерно как ты, но я плохо представляю конечный продукт. |
| Автор: IZ@TOP 20.6.2005, 20:36 |
| http://ru3.php.net/manual/ru/function.domxml-xslt-stylesheet-file.php Наверное примерно так и выглядит |
| Автор: Opik 20.6.2005, 22:28 | ||
$xmldoc = domxml_open_file("dom.xml"); значит данные хранятся в xml файле, а нам нужно в базе. |
| Автор: IZ@TOP 21.6.2005, 00:15 | ||
Opik, можно сделать тоже самое только с созданным документом, используй функции создания документа или загрузки его из памяти (читай переменной).
|
| Автор: Opik 21.6.2005, 00:41 |
| IZ@TOP вот это уже интереснее |
| Автор: IZ@TOP 21.6.2005, 00:49 | ||||
Вот что у меня вышло:
-- style.xsl
Добавлено @ 00:50 осталось разобраться с циклами и условиями и можно брать шаблонную часть Vingrad CMS на себя |
| Автор: Opik 21.6.2005, 00:50 |
| правда сами шаблоны какие то странные |
| Автор: IZ@TOP 21.6.2005, 00:54 |
| Opik, пожалуйста http://msdn.microsoft.com/library/en-us/xmlsdk/html/678bcd68-cbbb-4be5-9dd2-40f94488a1cf.asp читай сколько душе угодно. А я спать. |
| Автор: Opik 21.6.2005, 00:57 |
| с меня + |
| Автор: Opik 21.6.2005, 02:08 |
| Хотя всё равно ничего не ясно. как в ПХП5 работать с XML, а именно создавать на лету. |
| Автор: IZ@TOP 21.6.2005, 14:00 |
| Opik, вечером поставлю и посмотрю что с этим можно сделать. |
| Автор: Opik 21.6.2005, 14:20 |
| Хотя поставил php_domxml.dll... функция domxml_new_doc работает а append_child ругается. хотя думаю моя вина. вообщем буду ещё тестить |
| Автор: Gold Dragon 21.6.2005, 15:21 |
| Opik объясни как поставил, у меня что-то на всё ругается, может скачал что-то не то |
| Автор: Opik 21.6.2005, 16:05 |
| в том то и дело, что мы ещё сами не поняли. |
| Автор: IZ@TOP 21.6.2005, 20:33 |
| Пришел домой, сейчас буду разбираться и тестить все это дело под РНР 5 и РНР 4.3.10. |
| Автор: Opik 22.6.2005, 12:46 |
| кстати, те твои предыдущие примеры пашут |
| Автор: IZ@TOP 22.6.2005, 13:16 |
| Opik, что ты сделал? Значит можно использовать этот подход. Я кстате хочу попробовать поюзать SimpleXML, говорят что с ним работать еще удобнее. Может быть его использовать можно будет для парсинга конфигов. |
| Автор: Opik 22.6.2005, 15:21 |
| IZ@TOP php_domxml.dll поставил, только у тебя там старые функции (по мануалу). а в новой вроде баг есть |
| Автор: IZ@TOP 22.6.2005, 16:27 | ||||
| Что за баг? Вот я тут модифицировал немного стили и XSL шаблон:
|
| Автор: Opik 22.6.2005, 18:35 | ||
IZ@TOP
|
| Автор: OPG 23.6.2005, 13:43 |
| Вопрос в теме немного не связанный. Предлагаю открыть ветку форума где можно будет поэтапно пройти все стадии установки, создания документа, преобразования, парсинга, и работа с XSLT шаблонами. Сейчас делаю двигатель сайта на этих технологиях в котором реализована идея как сделать сайт эффективным с той позиции, что повысить эффективность его влияния на принятие нужного тебе решения посетителем сайта. А также не выпускать его с сайта Скажем так, я больше организатор и маркетолог (с многолетним опытом) в одном лице, который пару лет назад сел за компьютер с целью создать себе, то что отвечало бы моим интересам Есть у меня куча замечательной литературы могу иногда присылать материалы отсканированные. Отдельный разговор про совместную работу баз данных и XML. Поверхностно скажу, что XML данные можно хранить в базе с сохранением структуры, но необходимо приниятие решения с какой степенью детализации. Мой движок использует смешанную технологию, что , не только по моему мнению. является очень гибким решением. В общем согласен иногда снабжать материалами, но вопросы нужны четкие и последовательные. Что скажете, господа модераторы? P.S. Судя по всему немного народу пока сидит на этих технологиях. Иногда задавал вопросы, а ответа не получал. Приходилось ломиться самому, но все вопросы решаются. |
| Автор: Bikutoru 24.6.2005, 17:26 | ||
| Сразу прошу прощения за оффтоп, но очень неймется А что такое
|
| Автор: IZ@TOP 24.6.2005, 18:56 | ||
Добавлено @ 19:01 Хотя что конкретно имел ввиду автор того сообщения я то же понять немогу... хотя это вроде что-то с экономикой связано? |
| Автор: Opik 25.6.2005, 09:14 | ||||
Вообщем doxml не есть для 5.1
news.xsl
|
| Автор: dm9 29.9.2005, 17:46 | ||
А можно про баг поподробнее? |
| Автор: Opik 30.1.2006, 21:17 |
| dm9 Я точно не помню уже. Если ставить пхп5.1 и юзать дум. - проблем не будет. |
| Автор: dm9 31.1.2006, 10:23 |
| Opik, уже три сайта работают на DOMXML, пока проблем не было Нет, вру, была одна. Некорректная отработка <xsl:copy-of> была, для текстовых нод. Но это мелочи, жить можно. |
| Автор: Alx 16.4.2007, 15:45 |
| что-то я ничего не понимаю! что нужно сделать, чтобы начать работать с xml? какие-то расширения скачать? можно в двух словах, по русски, плиз.. и как сделать, чтобы работало и в 4 и в 5 версиях?.. |
| Автор: Alx 16.4.2007, 16:08 |
| у меня дома денвер с PHP 4.4.4, на хостинге - PHP 5.2, что делать-то? Добавлено через 2 минуты и 2 секунды копать в сторону PECL.. только ребята из php очень не советуют этого делать, говорят всем переходить на DOM (php5).. а какое примерно процентое соотношение php4 и php5 на современных хостингах стоит? я хочу сказать, можно ли забивать на php4 совсем? |
| Автор: sergejzr 16.4.2007, 16:14 |
| Чтобы начать работать, нужно понять каки всё это работает. Софт практически не нужен. Главное чтобы сервер выдавал ХМЛ, а как он это делает, через ДОМ, шаблон или просто print - пофиг. |
| Автор: -=Ustas=- 18.4.2007, 22:52 | ||
Самый лучший вариант, это поставить дома нормальный сервак, т.е. апач+php5.2.1 ну и что еще надо MySQL ли PostgreSQL. |
| Автор: Alx 20.4.2007, 00:29 | ||||
| в общем так. поставил на свой денвер php5. скачал с сайта denwer.ru устанавливаешь, больше ничего делать не надо, все уже включено. пошёл на php.net, нашел DOM, SimpleXML и XSLTProcessor. последние два вывели мне helloworld:
http://alx.vingrad.ru/dev/xml/php5 только вопрос. почему на выходе кодировка UTF-8? в encoding обоих XML-файлов прописана windows-1251.. |
| Автор: -=Ustas=- 20.4.2007, 09:24 |
| Ну все правильно, SimpleXML всегда приводит к юникоду. Точно не помню, можно или нет, но ссудя по всему нужно через iconv() прогонять. |
| Автор: dm9 20.4.2007, 09:54 | ||
Намёк: <xsl:output...> |
| Автор: Alx 20.4.2007, 13:23 |
| dm9, о, благодарю тебя, друг мой! Добавлено через 2 минуты и 16 секунд а что, если я просто с xml-файлом работаю? без xslt.. все равно глюки с кодировкой.. |
| Автор: check 5.5.2007, 14:55 | ||||
| У меня вот такой вопрос возник... Почему лучше и правильнее(если это действительно лучше и правильнее) генерить XML средствами DOM(ну или SimpleXML, кому что больше нравится), вместо того чтобы формировать его как строку. С парсингом всё понятно, а вот с генерацией - тут преимущества DOM для меня неочевидны. Точнее говоря я не вижу их вообще. Я в данный момент пишу для себя движок, в котором шаблонная часть будет реализована с помощью XML-XSLT. Так вот сейчас XML у меня генерится следующим образом
Дальше уже работаю с ним через DOM: достаю нужный xsl-шаблон, выполняю преобразование, вывожу результат.
Вот мне и интересно, если я переделаю генерацию xml-я средствами DOM, какие выгоды это мне даст? Ну кроме того, что код будет более чистым, поскольку в PHP-коде не будет вообще никаких тэгов, не только ХэТэМээЛьных, но даже и ИксЭмЭльных. А ради этого, вобщем, весь сыр-бор и городится По мере изложения вопроса, сам же начал на него отвечать... Но всё-таки - что ещё? Почему это не надо делать так, как у меня сейчас сделано? А как, например , с производительностью? Я почти уверен, что генерация DOM-ом работает медленнее. Или нет? |
| Автор: dm9 7.5.2007, 10:07 |
| check, производительность - ХЗ, надо думать, а лучше пробовать. А вот насчёт корректности кода - когда ты генерируешь XML строкой, ты имеешь шанс нарваться на какую-то ошибку в формировании этой строки. Например, пропустишь закрытие тэга. И обнаружишь это отнюдь не сразу - а (по закону подлости) тогда, когда проект будет находиться в эксплуатации. А в процессе тестирования ты просто не войдёшь в тот 'if', который содержит ошибочный код. |