2011-07-29 8 views
1

入力XMLファイルに別のXMLファイルへの参照(URL)があるとします。私はこの参照されたXMLファイルを私のスタイルシート/テンプレートの入力のように処理したいと思います。それ、どうやったら出来るの?XSLTを使用して入力XMLで参照されるXMLファイルを処理する方法は?

+0

良い質問、+1。シンプルで標準的な解決策については私の答えを見てください。 –

答えて

1

こののように、標準のXSLT document()機能を使用します。

上記の例で
<xsl:template match="someElementContainingURL"> 
<xsl:apply-templates select="document(string(.))" mode="doc2"/> 
</xsl:template> 

、我々はソースXML文書にsomeElementContainingURLという要素は、(実際の要素で、これを代用することを想定特定のXML文書の名前)には、処理する2番目の文書のURLが含まれています。

テンプレートマッチングsomeElementContainingURLでは、引数として現在のノードの文字列値を渡したときに、document()関数の結果にテンプレートを適用します。 2つ目の文書の処理を異なるモードで編成するのが最善です。これにより、2つの文書の同一のノード名とノードタイプを異なるテンプレートで処理し、競合を避けることができます。

0
<xsl:copy-of select="document('document.xml')/rootnode/subnode" /> 
<xsl:copy-of select="document('http://example.com/document.xml')/rootnode/subnode" /> 
関連する問題