2012-05-10 2 views
1

У меня есть этот XML-файл. Как я могу использовать этот единственный XML-файл для разделения на несколько отдельных страниц с каждым из их соответствующих узлов и перемещаться по ним со ссылками? Может кто-нибудь дать мне отправную точку?Как сгенерировать несколько HTML-страниц с помощью XSLT?

XML FILE

<Colors> 
    <Color> 
     <description> 
      <p>This page is red.</p> 
     </description> 
    </Color> 
    <Color> 
     <description> 
      <p>This page is blue.</p> 
     </description> 
    </Color> 
    <Color> 
     <description> 
      <p>This page is green.</p> 
     </description> 
    </Color> 
<Colors> 

Выход:

<html> 
    <head></head> 
    <body> 
    This page is red. 
    </body> 
</html> 


<html> 
    <head></head> 
    <body> 
    This page is blue. 
    </body> 
</html> 


<html> 
    <head></head> 
    <body> 
    This page is green. 
    </body> 
</html> 
+0

Вы хотите создать отдельные выходные файлы или просто несколько '' тегов в одном большом файле? – Tomalak

+0

Отдельные выходные файлы, я думаю. Поэтому я могу перемещаться по каждой странице с помощью кнопки или гиперссылок. –

ответ

2

XSLT 1.0 или 2.0?

Я боюсь, что в 1.0 нет ключевого слова с несколькими выходными данными - вам придется что-то делать извне - например. XSLT с параметром:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:output indent="yes" method="html" /> 

    <xsl:param name="n" select="1"/> 

    <xsl:template match="Color"> 
    <xsl:value-of select="."/> 
    </xsl:template> 

    <xsl:template match="/Colors"> 
    <html> 
     <head></head> 
     <body> 
     <xsl:apply-templates select="Color[$n]"/> 
     </body> 
    </html> 
    </xsl:template> 

</xsl:stylesheet> 

и вызова его повторно с различными значениями для параметра (в приведенном выше примере n = номер Color элемента для использования - 1, 2, 3 и т.д.)

В XSLT 2.0 см. this пример

+0

Как я могу добавить кнопку или гиперссылки для доступа к каждой отдельной странице? –

+0

Каждая страница будет HTML-файлом с некоторым фиксированным именем (например, 'colorXXX.html') - который может использоваться в гиперссылке. Вы можете иметь один и тот же XSLT - с другим параметром - также генерировать гиперссылки, но вам все равно придется называть его из другого места правильными параметрами. – MiMo

2

xsl:result-document может использоваться для вывода нескольких обработанных файлов из одной таблицы стилей.

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