2017-01-08 9 views
0

xsltファイルで扱う内容を切り替えるXMLファイルが1つあります。例:2 xml docs with xslt

<code> 
    <manual> 
     <use>1</use> 
    </manual> 
    <generated> 
     <use>0</use> 
    </generated> 
    <doc> 
     <localpath>content.xml</localpath> 
    </doc> 
</code> 

そしてcontent.xmlが同じタグを有し、すなわち、生成されたデータを解釈するための説明書があります。私の周りを検索し、このスニペットを発見した:

<xsl:variable name="messages" select="doc"/> 
<xsl:apply-templates select="document('$messages')"/> 

変数messagesが正しく読み込まれているが、ドキュメントがロードされていないようです。または、content.xml<doc>タグにロードされているので、ナビゲーションが開始され、前進するので、間違って見ていますか?

私はXSLTにはかなり新しくなっているので、これが明らかであれば私にご負担ください。

答えて

2

document($messages)ではなく、document('$messages')である必要があります。それがソースドキュメントに相対的である、またはスタイルシートへ:私はまたに相対的であるものを「content.xml」についての質問を残し

<xsl:variable name="messages" select="doc/localpath"/>

を期待しますか?

あなたの質問に関しては、「ナビゲーションがそこで始まり、前進するように、content.xmlがタグにロードされているので、間違っていると思っていますか? - XSLTで意味を持たない用語を使用しています(「タグに文字列を読み込む」や「前方に移動する」など)。したがって、現実にはほとんど根拠のないXSLTの仕組みの精神モデルを構築しようとしているかのように見えます。そのような場合は、より多くのコードを書く前にもっと読んでみることを強くお勧めします。

+0

よろしくお願いいたします。私は正しいことをマークする前に。私は、xmlを結合することに関する唯一の発見された文書を検索しました。私はそこから小さなWebページを作成する1つのXML文書を持っています。しかし、別のxmlファイルのどの要素を解釈すべきかを定義するax xmlファイルを持っていたいと思います。これは概念的に間違っていますか? – JTIM

+0

他のドキュメントを(通常は相対的な)URIで参照するドキュメントがあり、ID値またはXPath式で他のドキュメントの一部を参照するドキュメントもあります。 (ただし、最後のケースでは、ソースドキュメントから読み込んだXPath式を解釈するために、XSLT 3.0またはベンダー拡張が必要です。)もう一度XSLTの書籍を読んでください。 –