Войти

Показать полную графическую версию : Что еще можно сделать с XML + XSLT + XSL


Страниц : 1 2 3 4 5 6 [7] 8 9 10 11 12 13

benya
05-03-2006, 19:11
Никогда не интересовался "форматом" RSS, похоже что это обычный XML. Красотища. Бери и преобразовывай.

Vlad Drakula
05-03-2006, 22:27
X
все как сказал benya

benya
06-03-2006, 13:49
Господа, вот наша погода:


<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

xkspy
08-03-2006, 16:05
БОЛЬШОЕ СПАСИБО 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

E-mail
24-03-2006, 00:06
Vlad Drakula а ты можешь поддержать техническую беседу ЕЩЕ вот тут (http://conf.myhtml.ru)? :)

Vlad Drakula
24-03-2006, 00:27
E-mail

1) а чего там поддерживать... там ни одной темы даже нету...
2) назвать это "Конференции профессионалов ConF.MyHTML.RU" у меня язык не повернется... креатив в дизайне есть... но вот верстал не профессионал... виден ряд ляпов... (как "Конференция профессионалов" может быть сделана не пофессионально???)

E-mail
24-03-2006, 21:31
Vlad Drakula буржуйский движек, что тут (http://conf.myhtml.ru) можно сказать скоро свой выложу, но всеравно же приглашаю..

benya
04-04-2006, 13:51
Влад, какие должны быть права достпупа у файлов *.xsl? Какого-то фига на хостинге инструкция <xsl:import href="va.xsl"/> вызывает ошибку.

Vlad Drakula
04-04-2006, 14:06
benya
у меня и на локалке она выдает ошибку, дело скорее всего не в правах доступа а в "разрешении пути до файла", а проще говоря не там он его ищет...

benya
04-04-2006, 14:18
У меня на локалке все нормально. А как решить??
Инструкция 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
честно говоря я не знаю решения... я использую одинарный шаблон без загрузки других...

раньше я использовал вложенные шаблоны, но там была готовая системма которой нужно было просто скармливать их...

benya
04-04-2006, 15:12
Это не решение. Влить со всех шаблонов в один. Там не одна тысяча строк будет :shout: :swoon:

Vlad Drakula
04-04-2006, 15:35
benya
а почему нет?
есть такое правило "шаблон который в два раза короче работает быстрее" "один шаблон работает быстрее чем два"
для этих целей и создается скрипты для деплоя проекта на сервер...

benya
04-04-2006, 16:37
Зачем какие-то исключения если должно работать все нормально?
Теряются все преимущества. Это лажа. Еще и document('file.xml') тоже не работает. ;(

benya
05-04-2006, 13:10
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) во втором месте есть скрипт деплоя который разрешает все связи между файлами и производит их подготовку к резертыванию на сервере...

benya
05-04-2006, 16:12
Это как подробнее....

Vlad Drakula
05-04-2006, 16:56
benya
ну... ты веть знаешь что когдапишут обычные приложения сначала пишут их код, а потом их копмипилируют...
так вот и с веб приложениями так поступают...
в процессе "билда" происходит автогенерение файлов, парсинг и подготовка шаблонов и исходных файлов и т.д. (все зависит от конкретной задачи которую выполняет билд)




© OSzone.net 2001-2012