2017-02-18 14 views
0

私はxsl:importを使用しなければならないことは知っていますが、テンプレートのnameとはどのように呼びますかわかりません。別のスタイルシートからテンプレートをインポートするにはどうすればよいですか?

どうすればよいですか?

+1

ファイルに別のxsltをインポートすると、自動的に変換に適用されます。 – Rupesh

+1

あなたの質問は明確ではありません。 'xsl:import'を使うと、** all **インポートされたスタイルシートのテンプレートがインポートされます。自分のスタイルシートの一部であるかのように呼び出したり、適用したりします。詳細については、http://www.xml.com/pub/a/2000/11/01/xslt/ –

答えて

3

は非常に簡単です:f.xmlという名前

サンプルXML:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <a>abc</a> 
    <b>cde</b> 
</root> 

メインサンプルXSLT f.xslt

0123:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:import href="f1.xslt"/> 

<xsl:template match="/root"> 
    A: <xsl:value-of select="a/text()" /> 
    <xsl:call-template name="secondTemplate" /> 
</xsl:template> 

</xsl:stylesheet> 

は、サンプルXSLT f1.xsltを含めます

出力:<xsl:call-template name="secondTemplate" />ラインでアクセスされた名前のテンプレートを経由して - - <xsl:import ...>でインポートされ

<?xml version="1.0"?> 

    A: abc 
    B: cde 

だから、最初のXSLT(f.xslt)は、第二XSLT(f1.xslt)を呼び出しません。

0

<xsl:call-template>を使用すると、従来のプログラミング言語で関数を呼び出すことができます。

文字列を出力するこのような関数をXSLTで定義できます。

<xsl:template name="dosomething"> 
    <xsl:text>A function that does something</xsl:text> 
</xsl:template> 

<xsl:call-template name="dosomething">から呼び出すことができます。 <xsl:call-template>を適用<xsl:import>を使用して

+0

を読んでください。ただし、XSLTファイルですでに大量のテンプレートが作成されています。別のXSLTファイルを再利用することができます。 私はそれを行う方法がわかりません...私は 'xsl:import'を使用する必要があることを知っていますが、後でテンプレートを呼び出す方法はわかりません。 – Guilhermeffable

+0

すべてをインポートする必要はありません。上流のファイルをインポートするだけで十分です。 –

関連する問題