2013-12-26 3 views
0

У меня есть файл, который не находится там же, где находится файл xsl. Как добавить путь к файлу в переменную в моем файле xsl?Путь к файлу в переменной в XSL

Существует следующая ошибка, когда я исполняю файл XSL: Нет файлов найдено для преобразования с помощью таблицы стилей

Код:

<xsl:variable name="filename" select="'../../file.xml'" /> 
    <xsl:for-each select="document($filename)> 
     ... 
    </xsl:for-each> 

Спасибо

+0

попробовать ../../file.xml nrathaus

+2

Что значит «не работает»? Вы только что объявили переменную и присвоили ей значение строки. Чего ты ожидал? –

+2

Как вы используете переменную имени файла позже - можете ли вы предоставить нам пример или короткий фрагмент? – mockinterface

ответ

4

Вы можете получить его, если вы используя XSLT 2.0:

Предположим, у меня есть любой каталог '/ C:/Users/vgv/Desktop/Testing', который имеет подкаталоги, кратные файлы и мой XSLT 'WBC.xsl', и я хочу искать только файл catalog.xml. Можно использовать:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> 

    <xsl:param name="XSLPath" select="base-uri(doc(.))"/> 
    <xsl:param name="Files" select="collection(concat(substring-before($XSLPath,concat('/',tokenize($XSLPath,'/')[last()])),'?select=catalog.xml;recurse=yes'))"/> 
    <xsl:template match="/"> 
    <xsl:message><xsl:value-of select="$XSLPath"/></xsl:message> 
    <xsl:message><xsl:value-of select="base-uri($Files)"/></xsl:message> 
    </xsl:template> 

</xsl:stylesheet> 

который производит сообщение:

file:/C:/Users/vgv/Desktop/Testing/WBC.xsl 
file:/C:/Users/vgv/Desktop/Testing/fxsl-xslt2/catalog.xml 
+0

Если у меня есть wbc.xsl в другом месте по умолчанию, кроме c:/users, как определить? – Balaji

+0

Вы можете изменить коллекцию в этом случае 'collection (' file: /// d:/someDir /? Select = *. * ')'. Пожалуйста, просмотрите этот URL для получения дополнительной информации http://www.xmlplease.com/collection. –

Смежные вопросы