Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   xsl - include (http://forum.oszone.net/showthread.php?t=82472)

FADE 12-04-2007 06:50 573270

xsl - include
 
народ, а как подключить файл имя которого находится в переменной?

PHP код:

<xsl:include href="<xsl:value-of select="/var"/>"/> 

вот такое как переписать чтобы заработало?

Vlad Drakula 12-04-2007 10:52 573379

FADE
1) нельзя такого делать...
2) вы написали полный бред в примере кода

если очень зочется то нудно пичсать xsl заблон который создаст другой xsl шаблон который уже будет преобразовывать вашь xml (на работе я так делаю постоянно)


FADE 12-04-2007 10:57 573384

Цитата:

если очень зочется то нудно пичсать xsl заблон который создаст другой xsl шаблон который уже будет преобразовывать вашь xml
очень хочется!:)

Цитата:

на работе я так делаю постоянно
а можно посмотреть то, что ты имеешь ввиду?

Vlad Drakula 12-04-2007 11:05 573390

FADE
Цитата:

а можно посмотреть то, что ты имеешь ввиду?
посмотреть нельзя, но я могу попытаться объяснить:
1) создаешь xsl файл к ениму в параметры прописываешь нужные пути
2) по нужным по нужным путям из других xsl файлов ты этим шаблоном собираешь нужный тебе шаблон
3) преобразуешь свой xml с помошью того что выдало на выходе предыдуще преобразование

vadimiron 12-04-2007 12:44 573425

FADE
А парaметром можете передовать? Или надо много файлов подключать?
HTML код:

<xsl:param name="include" />
  <xsl:include href="$include" />


Vlad Drakula 12-04-2007 14:08 573454

vadimiron
по моему приведенный вами код не сработает...

FADE 20-04-2007 01:26 576916

vadimiron у меня не сработало, может я что не так переписал?

Vlad Drakula
Цитата:

преобразуешь свой xml с помошью того что выдало на выходе предыдуще преобразование
это ты как себе представляешь?

есть один общий шаблон для всех страниц, внутренность(еще один шаблон) меняется в зависимости от названия страницы.. пока решил с помощью if но както это не красиво, да и разных страниц около 11 штук, блок из 11 ifов смотрится ужасно.

как это можно сделать красивее, о гуру xsl ??

Vlad Drakula 20-04-2007 02:32 576933

FADE

я бы наверное двигался в этом направлении:

PHP код:

<?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:output method="xml"/>
    <xsl:param name="page"/>
    <xsl:template match="/">
        <xsl:apply-templates select="node()"/>
    </xsl:template>
    <xsl:template match="node()">
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:template match="node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="stylesheet">
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:copy-of match="node()[name() != 'xsl:template']"/>
            <xsl:element name="xsl:include">
                <xsl:attribute name="href"><xsl:value-of select="$page"/></xsl:attribute>
            </xsl:element>
            <xsl:copy-of match="node()[name() = 'xsl:template']"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Цитата:

пока решил с помощью if но както это не красиво, да и разных страниц около 11 штук, блок из 11 ifов смотрится ужасно.
а как на счет xsl:choose ?

FADE 20-04-2007 06:03 576944

Vlad Drakula
Цитата:

<xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:template match="node()"/>
</xsl:copy>
</xsl:template>
а это что делает?

Vlad Drakula 20-04-2007 10:49 577018

FADE
Цитата:

а это что делает?
дефолтный рекурсивно копирующий темплейт

FADE 21-04-2007 16:12 577571

а без него можно?
так чтобы поменьше кода..
не понятно как он работает..

Vlad Drakula 21-04-2007 20:48 577689

если вы не понимаете как он наботает, то вам перед тем как двигаться дальше нужно обязательно это понять!!!
на его использовании базируется слишном много приемов по организации XSL шаблонов!!!

FADE 21-04-2007 22:46 577750

а как это работает, на пальцах можно?:)

Vlad Drakula 21-04-2007 23:19 577766

FADE
я не хочу объяснять принципы работы XSL на пальцах... лучьше почитайте книгу на эту тему...


Время: 18:44.

Время: 18:44.
© OSzone.net 2001-