2017-11-16 3 views
-1

XSLTスタイルシートで、私は次のテンプレートに定義されている:XMLファイルでXSLT - テンプレートアプリケーション

<xsl:template match="*[@xlink:type = 'simple' and @xlink:href]"> 
    <a href="{@xlink:href}"> 
     <xsl:apply-templates/> 
    </a> 
</xsl:template> 
     <xsl:template match="//mets:mets/mets:fileSec/mets:fileGrp/mets:file/mets:FLocat"> 
    <a href="{@xlink:href}"> 
     <xsl:value-of select="@xlink:href"/> 
    </a> 
</xsl:template> 

のセクション「メッツ:メッツ/メッツ:fileSec /メッツ:fileGrp /メッツ:ファイル/メッツ:FLocat "は" mets:mets/mets:fileSec/mets:fileGrp/mets:file "の中にネストされ、何回か出現します。

の唯一の2つのセクションにしよう「メッツ:ファイル」:

<tr bgcolor="#ff0000"> 
    <td>Filename</td> 
    <td><xsl:apply-templates select="//mets:mets/mets:fileSec/mets:fileGrp/mets:file/mets:FLocat" /></td> 
</tr> 

次のようにこれは、HTML-プレゼンテーションをレンダリングする必要があります。私は、テンプレートを適用するには、次のコードを使用し

Data on file 1 
. 
. 
. 
Filename file:///location/of/file1 
Data on file 2 
. 
. 
. 
Filename file:///location/of/file2 

しかし、何が起こるのですか:

Data on file 1 
. 
. 
. 
Filename file:///location/of/file1file:///location/of/file2 
Data on file 2 
. 
. 
. 
Filename file:///location/of/file1file:///location/of/file2 

私はここで間違っていますか?

/ポール

+0

あなたの完全なXSLT、および入力XMLを投稿 – Steve

答えて

0

解決策が見つかりました。しかし、なぜ私は理解できませんか?

上記コード....

<tr bgcolor="#ff0000"> 
    <td>Filename</td> 
    <td><xsl:apply-templates select="//mets:mets/mets:fileSec/mets:fileGrp/mets:file/mets:FLocat" /></td> 
</tr> 

は....そしてIは所望の出力を持っに....

<tr bgcolor="#ff0000"> 
    <td>Filename</td> 
    <td><xsl:apply-templates select="." /></td> 
</tr> 

変化させました。

テンプレートがこのコードから必要なすべての情報を得ることは可能でしょうか?

<xsl:template match="*[@xlink:type = 'simple' and @xlink:href]"> 
    <a href="{@xlink:href}"> 
    <xsl:apply-templates/> 
    </a> 
</xsl:template> 

/ポール・