|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/28257b37c213.html, оценка из 5, голосов 10
|