2011-01-22 12 views
0

ちょっと、私はJava Servletsを使ってクイズ・アプリケーションを作成しています。私のクイズのデータ​​はXMLファイルに書き込まれます(例:<quiz><question><ask>...</ask><answer>...</answer>...</question></quiz>)。XML出力をXSLTと一致するフィッティング・フォーマットに生成

すべての質問とその回答を1つのページに表示する必要があります。そのため、最初の質問またはすべての質問だけが表示されるため、XMLをXSLTに変換することはできません。私の推測では、自分のJavaクラス(クラスQuestion、クラスQuizなど)を作成するためにXMLデータを読み込んで、一度に1つの質問だけを表示するXSLTに適合するXMLフォーマットを生成する必要があります。

このアプローチは正しい方法ですか、そうなら、これはどのように実現されますか?

もしそうでない場合は、どうでしょうか?

+1

@BrockenClockworkを:それはありますあなたの質問が何であるかはっきりしていないので、質問をうまく指定する方法を学んでください:XML文書とは何か、変換の望ましい結果は何か、変換が従わなければならない規則は何ですか? –

+0

非常に混乱しやすい質問です。あなたはあなたがしたい仕事をしない "XSLT"(おそらく、スタイルシートを意味する)を持っていることを示唆しているようです。そうであれば、正しいアプローチはそれを変更して正しいことをすることです。 –

+0

XSLTプロセッサは "ページ"について何も知らない。これは、特定のレンダーメディア用の特定のXMLボキャブラリの範囲に入ります。だから、このデータがなければ、これは本当の質問ではなく、誰にも役立つことはありません... –

答えて

3

最初の質問またはすべての質問のみが表示されるため、XMLをXSLTに変換することはできません。

あなたは間違っています。テンプレートと正しいXPathを使用してXSLTを記述すると、トランスフォームによって1つのXMLファイルに存在するすべての質問が出力される可能性があります。

また、属性値(たとえば)に応じて、特定のquestionノードを選択するためにXPathを使用することもできます。

あなたは次のテンプレートを持っているとapply-templatesにすべての質問を選択するには、右のXPathを使用している場合は、このテンプレートはに各質問だけではなく、最初に適用されます。

<xsl:template match="question"> 

</xsl:template> 
+0

すべての質問?特定の質問のみを出力します。 – BrokenClockwork

+0

@BrokenClockwork - あなたの質問から:「すべての質問とその回答を1ページに表示したい」それはどちらですか? – Oded

+0

@BrokenClockwork - 表示する質問と表示しない質問の選択基準についても説明できますか?これはすべてXSLTで行うことができます。 – Oded