XML 加 XSLT 是动态生成 HTML 的理想选择。您可以将问题和答案直接存储为 XML,或者从您的数据库生成 XML(我还没有这样做,但快速的 Google 显示了许多不同配置的选项)。
如果您的 XML 结构类似于
<questionList>
<question>
<identifier>1</identifier>
<questionText>What is your first name?</questionText>
<hasAnswer>true</hasAnswer>
<answer>Mary</answer>
</question>
<question>
...
</question>
</questionList>
然后你可以使用
<xsl:for-each select="questionList/question">
<xsl:if test="hasAnswer=='true'">
<span> <xsl:value-of select="questionText"/></span>
<span> <xsl:value-of select="answer"/></span>
</xsl:if>
</xsl:for-each>
这将遍历您的所有问题,并且仅在有答案时才显示它们。您也可以跳过使用“hasAnswer”标签,只测试“answer”是否为空(通过测试“answer”是否不是 ' ',即空字符串),但我更喜欢上面的选项。您可以使用跨度添加您在问题页面中使用的相同 CSS,或者将所有内容放在一个表格中并使用 td 代替 - 它非常灵活。
在关于 XSLT 的 w3schools 教程中,您可以阅读如何将 XSLT 样式表附加到 XML 文件,这就像将 CSS 添加到 HTML 一样简单。
当然,我已经在使用 XSLT,如果你喜欢你的锤子,每个问题看起来都像钉子。但我真的认为这是一个简单而轻松的解决方案。