| Новости | 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