2011-01-22 59 views
0

嗨,我正在用Java Servlets编写测验应用程序。我的测验数据被写入XML文件,即:<quiz><question><ask>...</ask><answer>...</answer>...</question></quiz>将XML输出生成为适合我的XSLT格式

我想在单个页面上显示每个问题及其答案。出于这个原因,我不能简单地将XML转换为我的XSLT,因为它只显示第一个问题或所有问题。我的猜测是,我应该加载XML数据以创建我自己的Java类,即:class Question,class Quiz等,并根据它们生成符合我的XSLT的XML格式,一次只显示一个问题。

这种方法是否正确,如果是这样,这是如何实现的?

如果不是,它可能怎么做?

+1

@BrockenClockwork:是不清楚你的问题是什么,请学会详细说明一个问题:什么是XML文档,转换的期望结果是什么,转换必须遵守的规则是什么。 – 2011-01-22 15:55:50

+0

一个非常令人困惑的问题。你似乎暗示你有“一个XSLT”(意思是,可能是一个样式表),它不会完成你想要的工作。如果是这样的话,那么正确的做法是改变它,这样做是正确的。 – 2011-01-22 16:32:34

回答

3

我不能简单地转换XML到我的XSLT,因为这将只显示第一个问题或所有问题。

你错了。如果您使用模板和正确的XPath编写XSLT,则转换可以输出一个XML文件中存在的所有问题,无论多少。

您还可以使用XPath来选择特定的question节点,具体取决于属性值(例如)。

如果你有下面的模板,并使用正确的XPath来选择在apply-templates所有问题,这个模板将被应用到每个问题,不只是第一:

<xsl:template match="question"> 

</xsl:template>