Показать полную графическую версию : Что еще можно сделать с XML + XSLT + XSL
Страниц :
1
2
3
4
5
6
[
7]
8
9
10
11
12
13
Никогда не интересовался "форматом" RSS, похоже что это обычный XML. Красотища. Бери и преобразовывай.
Vlad Drakula
05-03-2006, 22:27
X
все как сказал benya
Господа, вот наша погода:
<xsl:apply-templates select="document('pogoda.xml')/rss"/>
<!-- Погода -->
<xsl:template match="channel">
<xsl:for-each select="item">
<xsl:value-of select="title"/><xsl:text>.</xsl:text>
<xsl:variable name="one_liter" select="translate(substring(description,1,1),'ёйцукенгшщзхъфывапролджэячсмитьбю','ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧ СМИТЬБЮ')"/> <!-- Что-то типа uppercase для первого символа-->
<xsl:value-of select="concat($one_liter,substring(description,2))"/><xsl:text>.</xsl:text>
</xsl:for-each>
</xsl:template>
Запрашиваем погоду и сохраняем:
#!/usr/bin/perl
use strict;
use LWP::Simple;
my $link="http://informer.gismeteo.ru/rss/33345.xml";
my $pogoda=get $link;
die "Couldn't get it!" unless defined $pogoda;
open (POG, ">xsl/pogoda.xml");
print POG "$pogoda";
close POG;
Vlad Drakula
06-03-2006, 14:12
еще отмечу что XSL удобно применять для рисования интерфейсов...
так например пичем осбтрактный леяут для GUI потом применяем XSL и получаем на выходе уже нужный нам HTML
БОЛЬШОЕ СПАСИБО benya отлично!!!!
Vlad Drakula
22-03-2006, 14:04
математические опереции в XSL
<numbers>
<x>4</x>
<y>3.2</y>
<z>11</z>
</numbers>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="numbers">
A. 4 + 3.2 = <xsl:value-of select="x + y"/>
B. 3.2 - 4 = <xsl:value-of select="y - x"/>
C. 4 * 3.2 = <xsl:value-of select="x * y"/>
D. 11/3.2 = <xsl:value-of select="z div y"/>
E. 4 + 3.2 * 11 = <xsl:value-of select="x+y*z"/>
F. (4 + 3.2) * 11 = <xsl:value-of select="(x+y)*z"/>
G. 11 mod 4 = <xsl:value-of select="z mod x"/>
H. 4 + 3.2 + 11 = <xsl:value-of select="sum(*)"/>
I. floor(3.2) = <xsl:value-of select="floor(y)"/>
J. ceiling(3.2) = <xsl:value-of select="ceiling(y)"/>
K. round(3.2) = <xsl:value-of select="round(y)"/>
L. 11 + count(*) = <xsl:value-of select="11+count(*)"/>
M. 3.2 + string-length("3.2") =
<xsl:value-of select="y + string-length(y)"/>
N. 11 + "hello" = <xsl:value-of select="z + 'hello'"/>
</xsl:template>
</xsl:stylesheet>
A. 4 + 3.2 = 7.2
B. 3.2 - 4 = -0.8
C. 4 * 3.2 = 12.8
D. 11/3.2 = 3.4375
E. 4 + 3.2 * 11 = 39.2
F. (4 + 3.2) * 11 = 79.2
G. 11 mod 4 = 3
H. 4 + 3.2 + 11 = 18.2
I. floor(3.2) = 3
J. ceiling(3.2) = 4
K. round(3.2) = 3
L. 11 + count(*) = 14
M. 3.2 + string-length("3.2") = 6.2
N. 11 + "hello" = NaN
Vlad Drakula а ты можешь поддержать техническую беседу ЕЩЕ вот тут (http://conf.myhtml.ru)? :)
Vlad Drakula
24-03-2006, 00:27
E-mail
1) а чего там поддерживать... там ни одной темы даже нету...
2) назвать это "Конференции профессионалов ConF.MyHTML.RU" у меня язык не повернется... креатив в дизайне есть... но вот верстал не профессионал... виден ряд ляпов... (как "Конференция профессионалов" может быть сделана не пофессионально???)
Vlad Drakula буржуйский движек, что тут (http://conf.myhtml.ru) можно сказать скоро свой выложу, но всеравно же приглашаю..
Влад, какие должны быть права достпупа у файлов *.xsl? Какого-то фига на хостинге инструкция <xsl:import href="va.xsl"/> вызывает ошибку.
Vlad Drakula
04-04-2006, 14:06
benya
у меня и на локалке она выдает ошибку, дело скорее всего не в правах доступа а в "разрешении пути до файла", а проще говоря не там он его ищет...
У меня на локалке все нормально. А как решить??
Инструкция import и include выдают ошибку.
Я уже затрхал хостера. Выручай!!
Ошибка в логах:
[Tue Apr 04 13:08:33 2006] [error] [client 80.84.190.152] compilation error: file xsl/test.xsl line 18 element include
[Tue Apr 04 13:08:33 2006] [error] [client 80.84.190.152] xsl:include : unable to load xsl/ix.xsl
Все же правильно, почему так?
Vlad Drakula
04-04-2006, 15:00
benya
честно говоря я не знаю решения... я использую одинарный шаблон без загрузки других...
раньше я использовал вложенные шаблоны, но там была готовая системма которой нужно было просто скармливать их...
Это не решение. Влить со всех шаблонов в один. Там не одна тысяча строк будет :shout: :swoon:
Vlad Drakula
04-04-2006, 15:35
benya
а почему нет?
есть такое правило "шаблон который в два раза короче работает быстрее" "один шаблон работает быстрее чем два"
для этих целей и создается скрипты для деплоя проекта на сервер...
Зачем какие-то исключения если должно работать все нормально?
Теряются все преимущества. Это лажа. Еще и document('file.xml') тоже не работает. ;(
Vlad Drakula
А как ты обходишься без document()?
Кстати глянь свежим глазом на это:
http://groups.google.ru/group/linux.debian.bugs.dist/browse_thread/thread/456d6eabe697cd15/70e6317c86eb1d18%2370e6317c86eb1d18
Вот она проблема!! Только как решить?
Vlad Drakula
05-04-2006, 13:50
benya
1) в однм месте оно мне и не нужно.
2) во втором месте есть скрипт деплоя который разрешает все связи между файлами и производит их подготовку к резертыванию на сервере...
Vlad Drakula
05-04-2006, 16:56
benya
ну... ты веть знаешь что когдапишут обычные приложения сначала пишут их код, а потом их копмипилируют...
так вот и с веб приложениями так поступают...
в процессе "билда" происходит автогенерение файлов, парсинг и подготовка шаблонов и исходных файлов и т.д. (все зависит от конкретной задачи которую выполняет билд)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.