Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
527 04.08.2004 12:55
Здраствуйте!@main[] $path[/import/] # входной xdoc документ $sourceDoc[^xdoc::load[${path}xml.xml]] # шаблон в который бум делать импорт $template[^xdoc::load[${path}xsl1.xsl]] # с помощью DOM делаем import xsl шаблонов # определяем пространство имен.... $template.search-namespaces.xsl[http://www.w3.org/1999/XSL/Transform] # берем корневой элемент шаблона. $xsl_stylesheet[^template.selectSingle[//xsl:stylesheet]] # создаем элемент <xsl:import/> $xsl_import[^template.createElementNS[xsl;xsl:import]] # добавляем атрибут href $attr[^xsl_import.setAttribute[href;xsl2.xsl]] # добавляем созданый елемент <xsl:import/> к <xsl:stylesheet/> в начало дерева!!! важно! $add[^xsl_stylesheet.insertBefore[$xsl_import;$xsl_stylesheet.firstChild]] # преобразование xdoc документа шаблоном item.xsl $transformedDoc[^sourceDoc.transform[$template]] # выдача результата $response:content-type[ ^if(def $form:mode){ $.value[text/xml] }{ $.value[text/html] } $.charset[$response:charset] ] ##### ^if(def $form:mode){ ^switch[$form:mode]{ ^case[xml]{$result[^sourceDoc.string[]]} ^case[xsl]{$result[^template.string[]]} } }{ $result[^transformedDoc.string[$.method[html]]] }----------------------------
<?xml version="1.0" encoding="UTF-8"?> <xml> <window_name>Parser RU!</window_name> <linesMenu > <line name="classic" id="150" url="/cla/"/> <line name="dia" id="151" url="/dia/"/> <line name="abt" id="152" url="/ab/"/> <line name="mini" id="153" url="/mini/"/> <line name="sport" id="154" url="/sport/"/> </linesMenu> </xml>---------------------
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <!--<xsl:import href="xsl2.xsl"/>--> <xsl:template match="/"> <title> <xsl:value-of select=".//window_name"/> </title> <xsl:apply-templates select=".//linesMenu"/> </xsl:template> </xsl:stylesheet>----------------------------
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:template match="linesMenu"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tbody> <xsl:for-each select="./line"> <xsl:param name="url"><xsl:value-of select="@url"/></xsl:param> <tr> <td align="left"><a href="{$url}"><nobr><xsl:value-of select="@name"/></nobr></a></td> </tr> </xsl:for-each> </tbody> </table> </xsl:template> </xsl:stylesheet>чтобы посмотреть xsl : /import/?mode=xsl