Все, что вы хотели знать о программизме, но боялись спросить.
CdR
Графоман
Сообщения: 11245 Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.
Сообщение
CdR » 04 мар 2008, 21:11
Что-то я туплю как плуг.
Поможите, люди добрыя, бо сами мы неместные....
Например:
- есть xml отсюда :
weather.yahoo.com
в нём есть строчка: '<yweather:astronomy sunrise="6:47 am" sunset="6:00 pm"/>'
Хочется соорудить xsl, который бы после transformation файлика выдал что-то типа "<b>Sunrise</b>@6:47"
pastor
Завсегдатай
Сообщения: 418 Зарегистрирован: 21 июн 2006, 01:09
Откуда: UA (2:4623) > Vancouver
Сообщение
pastor » 04 мар 2008, 23:25
CdR писал(а): Что-то я туплю как плуг.
Поможите, люди добрыя, бо сами мы неместные....
Например:
- есть xml отсюда :
weather.yahoo.com
в нём есть строчка: '<yweather:astronomy sunrise="6:47 am" sunset="6:00 pm"/>'
Хочется соорудить xsl, который бы после transformation файлика выдал что-то типа "<b>Sunrise</b>@6:47"
Код: Выделить всё
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" exclude-result-prefixes="yweather geo">
<xsl:output method="html" version="1.0"/>
<xsl:template match="/">
<html>
<head></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="/rss">
<xsl:for-each select="channel/yweather:astronomy">
<b>Sunrise</b>@<xsl:value-of select="@sunrise"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
CdR
Графоман
Сообщения: 11245 Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.
Сообщение
CdR » 04 мар 2008, 23:41
pastor писал(а):
не. что-то не то.
Но капать отложим на завтра...
pastor
Завсегдатай
Сообщения: 418 Зарегистрирован: 21 июн 2006, 01:09
Откуда: UA (2:4623) > Vancouver
Сообщение
pastor » 05 мар 2008, 00:17
CdR писал(а): pastor писал(а):
не. что-то не то.
Но капать отложим на завтра...
Как это не то? Я взял xml по указанному адресу. В результате вышеприведенной трансформации вижу:
Код: Выделить всё
<html>
<head>
<META http-equiv="Content-Type" content="text/html">
</head>
<body><b>Sunrise</b>@6:47 am</body>
</html>
Разве это не то, что требовалось?
ЗЫ. На всякий случай: на форуме код размещается в ифрейме со скролл-барами, вся суть под катом
CdR
Графоман
Сообщения: 11245 Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.
Сообщение
CdR » 05 мар 2008, 00:25
pastor писал(а): Разве это не то, что требовалось?
100% то. Более, того, я именно подобные вещи и пробовал.... Нейдьоть.
Похоже надо бы с трансформатором разобраться.
Я пользуюс perl XML::LibXSLT (interface for gnome libxslt). И, вот-с, как-то не складывается.
pastor
Завсегдатай
Сообщения: 418 Зарегистрирован: 21 июн 2006, 01:09
Откуда: UA (2:4623) > Vancouver
Сообщение
pastor » 05 мар 2008, 06:40
CdR писал(а): Более, того, я именно подобные вещи и пробовал.... Нейдьоть.
А что значит "нейдоть"?
ругается как-то?
Я писал xsltшку и тестил с msxml (трасформировал vbs-скриптом).
CdR
Графоман
Сообщения: 11245 Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.
Сообщение
CdR » 05 мар 2008, 09:14
Мдя....
Утро вечера есть умней.
Действительно, все
работает .
У меня вот такой фрагмент был:
Код: Выделить всё
<xsl:template match="//yweather:astronomy">
<b>Sunrise</b>@<xsl:value-of select="@sunrise"/>
</xsl:template>
Всё-таки по-вечерам надо водку пить, а не xslt копать.