2011-01-14 17 views
1

<xi:include>要素の後に処理命令を追加しようとしています。XSLT:スタイルシートを使用せずに<xi:include>を解決する

<xsl:template match="@*|node()" name="identity"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 
<xsl:template match="xi:include"> 
    <xsl:call-template name="identity"/> 
    <xsl:processing-instruction name="hard-pagebreak"/> 
</xsl:template> 

問題は<xi:include>がある。すなわち(できるだけ早く私は<xi:include>の全体の束のリストである私のcontents.xmlファイル(にこれを適用すると、タグが解決され、ファイルが本質的に平坦化されていることですこれは、私がcontents.xmlでスタイルシートを実行するたびに起こるようです。<xi:include>が解決されないままスタイルシートを実行する方法はありますか?xsltパーサーなどをそのスタイルシート?

+0

特定のXSLTプロセッサ構成/機能/動作。再タグ付け –

答えて

1

xi:includeを理解したりすることによってxi:include処理を防ぐための右のスイッチを設定していないXMLパーサーを使用パーサ

これらが不可能な場合は、xi:include要素を生成するのと同じ変換で処理を含める必要があります。

+0

私は ''に触れないパーサーを走らせましたが、私はちょうど ''を 'に変更しました''それは美的に見えるかもしれませんが、可能な限りxmlにはほとんど影響を与えません。 – Ace

+2

テンプレートで 'xi:include'とマッチさせる' 'を' 'に置き換えてください。 –

+0

Saxonでは、ラインスイッチ-xiは、XInclude要素が展開されているかどうかを制御します。 –

関連する問題