Возможно вы искали: 'Treasures of the Deep'

May 15 2025 18:46:08
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Как сделать новостную ленту испльзуя XML/XSLT (xml web)

Как сделать новостную ленту испльзуя XML/XSLT (xml web)

Ключевые слова: xml, web, (найти похожие документы)

From: Max <max_kma@mail.ru>
Newsgroups: email
Date: Mon, 14 Jan 2004 14:31:37 +0000 (UTC)
Subject: Как сделать новостную ленту испльзуя XML/XSLT

XML/XSLT - как сделать новостную ленту без PHP и SQL
-------------------

Приручение XML
Иллюстрация поиска решения + как возможно проще про XML
(навеяно сайтом gentoo.org и проектом linuxdoc,
где XML технологии давно и успешно применяются)
(( изучение материалов http://www.w3c.org крайне приветсвуется ))
(( см.также http://www.xmlsoft.org/XSLT.html ))

Задача в общем типичная: "сделать страницу с новостями"

Более подробно :
- надо иногда публиковать небольшие сообщения.
- механизм публикаций сугубо на моей совести.
- из всего офисного барахла под это дело подходит только шлюз,
на котором крутится Linux.
- на шлюзе отсутсвуют (пока) apache,php,sql

Первое-же решение (в лоб) :
- установить apache,php,sql
- создать БД и php-шный скрипт

Это решение после перекура и бутылки пива отброшено, как заведомо неверное,
потому как придется холить и лелеять помимо апача еще и пхп с sql.
И вообще ставить sql только ради новостей - как-то глупо.
Сделать руками html и потом всегда его править - тоже как-то не то..

После чего последовало изучение - что уже есть из того, что может пригодиться.
Ага ! xsltproc имеется..man xsltproc..Хмурю лоб - вещь хорошая, но придется
расширять кругозор - понять как xslt работает..

links http://www.w3c.org - через пару часов ясно, что для поставленной задачи вполне
подходит, и минимальный знаний подчерпнутых из стандарта хватит для решения.

Второе решение :
- установить только apache (куда-ж без него-то)
- сделать xml-страницу и к ней xslt
- для публикации редактировать xml-ку и натравливать xsltproc,
чтобы получить html
Сказано-сделано :
- ставлю apache
- пишу news.xml,news.xsl
# xstproc news.xsl news.xml > news.html
- проверяю - работает
Ура ! html не надо править в ручную, достаточно внести нужные правки
в xml (что проще) и все ok. Однако нет предела совершенству - возникает
следующий вопрос - а вот например сделать файл news2.xml как дополнение к
news.xml?

Создаю..
# cp news.xml news2.xml

Пробую..
# xsltproc news.xsl news.xml news2.xsl

Хрена..:(
html заголовки повторены дважды..
А может их сначала слить ?
# cat news.xml news2.xml | xsltproc news.xsl -
тоже хреновина..
в xml-е корневая запись должна быть одна (да и заголовок тож один)
Ну тогда sed`ом их...

Алгоритм примерно таков :
для суммарного файла сделать свой заголовок и свой хвост,
и слить в него все исходные, попутно вырезая строчки типа <?xml...?>
Делаю..вышло..только придется xsl немного править

Окончательное решение :
каждую новость помещать в отдельный xml..(в каталог news-in)
при добавлении/удалении новости переделывать суммарный xml
и транслировать его в html.
чтобы новости шли последовательно исходные файлы сортировать по времени.
а старые новости (;-)) можно убивать по крону..
Вуалля !

Плюсы решения :
полученны и примененны новые знания
сэкономлено время
сэкономленны ресурсы (один раз запустить xslt вместо того чтоб
круглосуточно гонять базу)
оформление(дизайн) отделен от содержания - внешний вид можно
курочить отдельно от логики
внешние приложения могут обращаться напрямую к summary.xml
и брать оттуда информацию (проще чем царапать из html)

Минусы :
чтобы создать/опубликовать новость надо все-же знать xml и принятый
формат
надо еще иметь права на запись в news-in..(хотя новости можно
собирать и по домашним каталогам)

Кратко про XML :
(в рамках приведенного примера)
Файл начинается с заголовка <?xml version="version" encoding="encoding"?>
далее - иерархия узлов,обрамленных тегами как в html -
<tag>текст</tag>
в xml-файле должен быть только один узел верхнего уровня.
теги могут иметь аттрибуты оформленные в виде attr="value"
Например :
<person sex="man">Петя</person>

Кратко про XSL :
(в рамках приведенного примера)
xsl соответсвует формату xml, то есть тоже начинается с заголовка
и включает иерархию узлов.
Верхний уровень будет зваться <xsl:stylesheet>
Есть три важных узла :
<xsl:template macth="xpath"> - описание шаблона,который будет применяться
к узлам xpath
<xsl:apply-templates select="xpath"/> - ставиться в то место где надо
применить шаблон (куда будет подставлен результат)
<xsl:value-of select="xpath"/> - похож на apply-templates, но
шаблон применяться не будет, а будет подставлена значение xpath
xpath адресует узлы в исходном xml-документе
"/" - корневой узел
"node" - узел типа node следующий за данным
"@attr" - значение аттрибута attr текущего узла
и так далее..

Прим.:
1. Mozilla и IE вполне спокойно открывают xml`ки и делают все требуемые
xslt-преобразовая уже на стороне клиента.(без xsltproc)
2. Никто не запрещает прицепить еще и CSS
3. "Не стреляйте в пианиста - он играет как умеет" :-)
- слияние xml-ков можно (и нужно наверное) делать не sed`ом,
а тем-же xslt к примеру. (правда sed`ом проще и быстрее)
- в вызове sed - есть видимо мелкая ошибочка ;-)
4. Не забудьте правильно выставить права доступа !!

Далее приведу все упомянутые файлы :

news.sh - элементарный bash-скрипт, делает из нескольких файлов .xml один
summary.xsl - шаблон трансформации нашего файла с новостями в html
sample-news.xml - пример файла новостей
summary.css - таблица стилей

---- news.sh ----------------------------------------------------
#!/bin/bash
# делаем заголовок для суммарного xml-файла
echo '<?xml version="1.0" encoding="koi8-r"?>' > summary.xml
echo '<?xml-stylesheet type="text/xml" href="summary.xsl"?>'>> summary.xml
echo '<summary>' >> summary.xml
# сливаем в него все имеющиеся новости
for name in `ls -1 --sort=time ./news-in/*.xml | head -n 30`;do
sed "s/<?xml.*?>/<!--removed-->/" $name >> summary.xml
done
# пишем хвост для суммарного файла
echo '</summary>'>> summary.xml
# делаем html
xsltproc summary.xsl summary.xml > summary.html
---- end news.sh ------------------------------------------------

---- summary.xsl ------------------------------------------------
<?xml version="1.0" encoding="koi8-r"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslSurprisedutput method="html" encoding="koi8-r"/>
<!-- предыдущие строки можно считать просто заклинанием -->
<!-- генерация html-заголовка (обработка корневой записи) -->
<xsl:template match="/">
<html lang="ru">
<head>
<!-- не ставьте Content-Type - xsltproc сам его сделает -->
<title>Новости</title>
<!-- а вот так цепляется таблица стилей -->
<link rel="stylesheet" type="text/css" href="summary.css"/>
</head>
<body>
<!-- обработка всех новостей -->
<xsl:apply-templates select="summary"/>
</body>
</html>
</xsl:template>

<!-- перехватываем узлы summary - он у нас только один такой -->
<xsl:template match="summary">
<h3>Новости</h3>
<!-- обработка каждой новости -->
<xsl:apply-templates select="news"/>
</xsl:template>

<!-- перехватываем узлы news - описания каждой отдельной новости -->
<xsl:template match="news">
<!-- форматирование новости -->
<span id="news-date"><xsl:value-of select="date"/></span>
<span id="news-author"><xsl:value-of select="author"/></span>
<span id="news-title"><xsl:value-of select="title"/></span>
<span id="news-brief"><xsl:value-of select="brief"/></span>
<p>
<xsl:apply-templates select="text()"/>
</p>
<hr/>
</xsl:template>

</xsl:stylesheet>
---- end summary.xsl ----------------------------------------------

---- sample-news.xml -----------------------------------------------
<?xml version="1.0" encoding="koi8-r">
<!-- Просто пример формата файла с новостью -->
<news>
<date>14.01.2004</date>
<author>I`m</author>
<title>Пример новости</title>
<brief>файл сделанный для примеров и тестов</brief>
Дальше пошел порсто произвольный текст..
И так далее и так далее..
</news>
---- end sample-news.xml -------------------------------------------

---- summary.css ---------------------------------------------------
#news {
border-width:2px;
border-styleSurprisedutset;
}
#news-date {
font-style:italic;
margin-left:10px;
}
#news-author {
font-style:italic;
font-size=80%;
margin-left:10px;
}
#news-title {
font-weight:bold;
margin-left:10px;
text-transform:uppercase;
}
#news-brief {
margin-left:10px;
}
--- end summary.css ---------------------------------------------------
708 Прочтений •  [Как сделать новостную ленту испльзуя XML/XSLT (xml web)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Как сделать новостную ленту испльзу... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка