Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Shikov                         2:5020/400     07 Aug 2000  15:48:12
 To : All
 Subject : Re: Перл умирает?
 -------------------------------------------------------------------------------- 
 
 Michael Samanov wrote:
 
 > 
 > Господа, вы, этого, того... Расскажите чайникам в двух словах, куды
 > крутить этот XML/XSL, чтобы выдавать стандартный HTML, и если это
 > чего-то не того я прошу, то в чем тогда кайф от XML-я?
 
 www.w3.org, там в разделе XSL есть ссылки на приличные туториалы по XSL.
 Это для начала. А если в двух словах, то выглядит все так:
 
 Есть XML, который содержит только данные (это живой пример сделанный на
 Cocoon):
 
 <?xml version="1.0"?>
 
 <?cocoon-process type="sql"?>
 <?cocoon-process type="xslt"?>
 <?xml-stylesheet href="select.xsl" type="text/xsl"?>
 <?cocoon-format type="text/html/loose"?>
 
  <page>
    <countries>
      <country>
        <CountryId>1<CountryId><Des>Австрия<Des>
        <CountryId>2<CountryId><Des>Франция<Des>
      </country>
    </countries>
 
    <query connection="tours" doc-element="resorts" row-element="resort">
      select CountryId,ResortId,Des from Resorts
      order by 3
    </query>
 </page>
 
 тут главное что - что источником может быть как файловая система (см.
 страны), так и например база (как с курортами). Главное чтобы в
 результате был XML, где берем - до лампочки.
 
 Потом мы на это натравливаем XSL-стиль (несущественные подробности
 опущены):
 
 <?xml version="1.0" encoding="windows-1251"?>
 <xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
   <!-- это шаблон страницы в целом -->
   <xsl:template match="page">
    <html>
     <head><title>Выбор страны и курорта</title></head>
     <body><form><xsl:call-template name="selects"/></form></body>
    </html>
   </xsl:template>
 
   <!-- это шаблон размещения комбо-боксов в форме -->
   <xsl:template name="selects">
     <table border="0" cellspacing="0" cellpadding="0">
       <tr><td>
         <select name="countryid">
           <xsl:apply-templates select="/page/countries" mode="option"/>
         </select>
       </td><td>
         <select name="resortid">
           <option value=""></option><xsl:apply-templates
 select="/page/resorts" mode="option"/>
         </select>
       </td><td>
         <select name="hotelid">
           <xsl:apply-templates select="/page/hotels" mode="option"/>
         </select>
       </td><td>
         <input type="submit" name="Search" value="Search"/>
       </td></tr>
     </table>
   </xsl:template>
 
   <!-- а это шаблоны для тэгов select -->
   <xsl:template match="country" mode="option">
     <xsl:element name="option">
       <xsl:attribute name="value"><xsl:value-of
 select="./CountryId"/></xsl:attribute>
       <xsl:value-of select="./Country"/>
     </xsl:element>
   </xsl:template>
 
   <xsl:template match="resort" mode="option">
     <xsl:element name="option">
       <xsl:attribute name="value"><xsl:value-of
 select="./ResortId"/></xsl:attribute>
       <xsl:value-of select="./Resort"/>
     </xsl:element>
   </xsl:template>
 
 </xsl:stylesheet>
 
 Тут уже наоборот - одно оформление, никаких данных. В результате
 получается HTML с формой и двумя комбо-боксами. А если взять другой
 стиль, то получим например WML или HDML.
  
 > А стандартные редакторы (та же макромедия) его понимают? Это я типа
 > о дизайнерах пекусь.
 
 Дизайнерам это противопоказано давать. Стиль делается при желании руками
 из заготовки HTML, нарисованной дизайнером.
  
 > Лучше, конечно, даже отвечать в RU.CGI.PERL
 
 Может и лучше, но у меня ее нету.
 --- ifmail v.2.15dev5
  * Origin: home (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Перл умирает?   Serge Shikov   07 Aug 2000 15:48:12 
 Re: Перл умирает?   Serge Yatsenko   07 Aug 2000 17:54:40 
 Re: Перл умирает?   Serge Shikov   08 Aug 2000 00:24:37 
 Re: Перл умирает?   Serge Yatsenko   08 Aug 2000 05:32:24 
Архивное /ru.perl/28257b37c213.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional