tolyangin:

>> Думаю, что при необходимости можно получить эту информацию из html
>> при помощи xslt (программа xsltproc). Поэкспериментируйте с
>> xslt'шками,

To> Как с ними эксперементировать? Впервые слышу о xslt.

xslt - язык преобразования xml. xslt и сам определён на основе xml. То
есть, на xml-языке xslt пишут описания преобразований одних документов
xml в другие. В emacspeak есть набор готовых xslt'шек для облегчения
просмотра страниц в emacs-w3m и w3. Применяются они с помощью утилиты
xsltproc, причём xsltproc может обрабатывать и обычный html.

У меня есть xslt'шка для преобразования rss в html (во вложении). Для
Вашего адреса получается такой результат:

$ curl -s http://informer.gismeteo.ru/rss/33345.xml | xsltproc --novalid 
--nonet ~/rss/rss-to-xhtml.xsl - | w3m -dump -T text/html
GISMETEO.RU: Погода от ФОБОС и Мэп Мейкер

 1. Киев: День 05 Feb, Fri
    Дата:
    Скачать файл (0 МБ).

    Пасмурно, температура -4..+-6 С, давление 758..760 мм рт.ст., ветер
    Восточный, 4 м/с

 2. Киев: Вечер 05 Feb, Fri
    Дата:
    Скачать файл (0 МБ).

    Пасмурно, температура -6..+-8 С, давление 758..760 мм рт.ст., ветер
    Восточный, 4 м/с

 3. Киев: Ночь 06 Feb, Sat
    Дата:
    Скачать файл (0 МБ).

    Пасмурно, температура -8..+-10 С, давление 758..760 мм рт.ст., ветер
    Восточный, 4 м/с

 4. Киев: Утро 06 Feb, Sat
    Дата:
    Скачать файл (0 МБ).

    Пасмурно, температура -10..+-12 С, давление 757..759 мм рт.ст., ветер
    Восточный, 5 м/с

Прогноз погоды по 4500+ городам России и Мира

-- 
Дмитрий Падучих

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2009  Dmitri Paduchikh <[email protected]>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-->

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns="http://www.w3.org/1999/xhtml";>
<xsl:output method="xml" encoding="UTF-8" indent="yes"
            doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
            
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

<xsl:template match="/rss/channel">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
      <title>
        <xsl:value-of select="title"/>
      </title>
    </head>
    <body>
      <h1>
        <a href="{link}">
          <xsl:value-of select="title"/>
        </a>
      </h1>
      <ol>
        <xsl:apply-templates select="item"/>
      </ol>
      <xsl:apply-templates select="description"/>
    </body>
  </html>
</xsl:template>

<xsl:template match="item">
  <li>
    <a href="{link}"><b><xsl:value-of select="title"/></b></a>
    <br/><xsl:text>&#10;</xsl:text>
    <xsl:apply-templates select="author" />
    <xsl:text>Дата: </xsl:text>
    <xsl:value-of select="pubDate"/>
    <br/><xsl:text>&#10;</xsl:text>
    <xsl:apply-templates select="enclosure"/>
    <xsl:apply-templates select="description"/>
  </li>
</xsl:template>

<xsl:template match="author">
  <xsl:text>Автор: </xsl:text>
  <xsl:value-of select="." />
  <br /><xsl:text>&#10;</xsl:text>
</xsl:template>

<xsl:template match="enclosure">
  <a href="{...@url}">
    <xsl:text>Скачать файл</xsl:text>
    <xsl:if test="@length">
      <xsl:text> (</xsl:text>
      <xsl:value-of select="format-number(number(@length) div 1048576, 
'0.##')"/>
      <xsl:text> МБ)</xsl:text>
    </xsl:if>
    <xsl:text>.</xsl:text>
  </a>
  <br/><xsl:text>&#10;</xsl:text>
</xsl:template>

<xsl:template match="description">
  <p>
    <xsl:value-of select="." disable-output-escaping="yes"/>
  </p>
</xsl:template>

</xsl:stylesheet>
-- 
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus

Ответить