2012-05-10 4 views
1

私はこのXMLファイルを持っています。この1つのXMLファイルを使用して、それぞれのノードごとに複数の個別のページに分割し、リンクでナビゲートするにはどうすればよいですか?誰かが私に出発点を与えることができますか?XSLTを使用して複数のHTMLページを生成するには?

XMLファイル

<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

別の出力ファイルを作成するか、1つの大きなファイルに複数の「」タグを作成しますか? – 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

各ページは、ハイパーリンクで使用できる固定名(例: 'colorXXX.html')を持つHTMLファイルになります。別のパラメータで同じXSLTを作成することもできますが、このハイパーリンクも生成しますが、正しいパラメータで別の場所から呼び出す必要があります。 – MiMo

2

xsl:result-documentが単一のスタイルシートからの出力、複数の処理されたファイルに使用することができます。

関連する問題