Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование ссылки на файл 
:(
    Опции темы
Tyumener
Дата 19.10.2009, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Добрый день!
Есть XML, в котором содержаться данные о файлах и папках. Вложенность папок произвольная, файлы находятся на последнем уровне. 
Нужно сделать чтобы при нажатии на файл, он открывался - т.е. делать ссылку, в которой будет указан полный путь. 
Получаю имя файла (File.pdf), но не пойму как добавить путь к нему (Level1/Level2/File.pdf).

Исходный XML:
Код

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<Folder>
    <Path>
        Level1
    </Path>
    <Folder>
        <Path>
            Level2
        </Path>
        <File>
            <FileName>
                File.pdf
            </FileName>
        </File>
    </Folder>
</Folder>


Таблица стилей:
Код

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head/>
            <body>
                <xsl:apply-templates />
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="Folder">
        <ul>
            <xsl:value-of select="Path"/>
            <xsl:apply-templates select="Folder" />
            <xsl:apply-templates select="File" />
            <xsl:variable name="Path"><xsl:value-of select="Path"/></xsl:variable>
        </ul>
    </xsl:template>    
    
    <xsl:template match="File">
        <li>
              <a>
                <xsl:attribute name="href">
                 <xsl:value-of select="FileName" />
                </xsl:attribute>
                <xsl:value-of select="FileName" />
              </a>      
        </li>
    </xsl:template>    
    
</xsl:stylesheet>


Это сообщение отредактировал(а) Tyumener - 19.10.2009, 08:06
PM MAIL   Вверх
mcTep
Дата 23.10.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: 1
Всего: 6



Вот такое решение есть.. Может есть и более изящное  smile 


Код

<xsl:template match="File">
    <li>
        <a>
            <xsl:attribute name="href">
                <xsl:call-template name="get-href">
                    <xsl:with-param name="file" select="."/>
                </xsl:call-template>
            </xsl:attribute>
            <xsl:value-of select="FileName" />
        </a>     
    </li>
<xsl:template>

<xsl:template name="get-href">
    <xsl:param name="file"/>
    <xsl:if test="$file/../Path">
        <xsl:call-template name="get-href">
            <xsl:with-param name="file" select="$file/.."/>
        </xsl:call-template>
        <xsl:value-of select="normalize-space($file/../Path/text())"/>
        <xsl:text>/</xsl:text>
    </xsl:if>
    <xsl:if test="$file/FileName">
        <xsl:value-of select="normalize-space($file/FileName/text())"/>
    </xsl:if>
</xsl:template>


Это сообщение отредактировал(а) mcTep - 23.10.2009, 10:22
PM MAIL   Вверх
Tyumener
Дата 28.10.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Цитата(mcTep @  23.10.2009,  10:22 Найти цитируемый пост)
Вот такое решение есть.. Может есть и более изящное  smile 


То что доктор прописал! smile Спасибо большое! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.