2010-05-17 91 views
3

我有一个XML文档,需要生成静态HTML页面(通过CD进行分发)。我知道(在不同程度上)JavaScript,PHP和Python。我认为目前的选项这里列出:从XML内容生成静态HTML网站

  • 我不排除JavaScript,因此其中一个方案是使用Ajax动态加载XML内容转换成HTML页面。 编辑:我会使用jQuery这个选项。

  • 学习一些基本的XSLT并按照这种方式生成符合正确规范的HTML。

  • 用PHP生成站点(例如),然后生成一个静态站点。

  • 编写脚本(以Python为例)将XML转换为HTML。这与XSLT选项类似,但不必学习XSLT。

有用的信息:

  • 的XML可能会在某个时候发生改变,所以我希望能够轻松地重新生成网站。

  • 我将不得不生产某种菜单来跳转文档(所以我需要产生某种内容的索引)。

我想知道是否有人有更好的想法,我没有想到。如果没有,我想让你告诉我哪个选项似乎最明智。我想我知道我要做什么,但我想要第二个意见。谢谢。

回答

4

我认为XSLT是迄今为止最简单和最好的方法 - 即使考虑到必须学习xslt。

有几种xslt编程风格,但最简单的就是“推送处理”,您可以在其中编写多个模板来描述如何将xml输入转换为html输出。然后你编写一个根模板输出基本的html包装并调用其他模板。根 模板是最简单的一个:

<xsl:template match="/" > <!-- "/" matches the document root --> 
    <html> <!-- whatever is not in xsl: namespace is template output --> 
    <head><title>...</title></head> 
    <body> 
    <xsl:apply-templates /> <!-- this searches for and calls additional template matches --> 
    </body> 
    </html> 
</xsl:template> 
+0

谢谢Steven(和Lucero)。我想我会使用XSLT,当我完成时我会报告回来!如果一切都很糟糕,我保留撤回我接受的答案的权利:) – Skilldrick 2010-05-19 16:31:29

1

我会去与PHP选项。原因在于当XML更改您的网站内容“应该”时会自动更改,而无需触摸您的PHP代码。

创建一个Python脚本来生成大量的静态页面对我来说似乎是一个坏主意,而对于JavaScript,你会遇到跨浏览器的麻烦(除非你使用的是框架)。

使用服务器端语言进行这些类型的任务,这是他们的目的。

+0

的事情是,它正在对CD分布,所以我还是要重新生成静态页面。另外,如果我使用JS路由,我将使用jQuery。 – Skilldrick 2010-05-17 15:57:41

+0

该网站是否分发购买CD?换句话说,人们会从CD-ROM上运行这个站点吗? – Andre 2010-05-17 16:02:34

+0

在这种情况下,PHP和服务器端语言都不存在。最好的方法可能是Python恕我直言,除非你很了解XSLT。 – Andre 2010-05-17 16:05:54

2

我会选择XSLT选项,通过参数进行控制,以根据需要从相同的XML源生成不同的页面。这真的是用于XML转换的工具。

+0

我不确定XSLT的唯一原因是因为它是我以前从未使用过的语言。虽然我很高兴学习。 – Skilldrick 2010-05-17 15:58:17

+0

如果您之前已经完成了一些功能性/声明性编程,我认为您很快就会感受到使用XSLT的感觉。 – Lucero 2010-05-17 16:01:12

0

用你最喜欢的东西去吧。

如果它很简单,你可以使用(例如)PHP生成一个页面,然后使用命令行脚本(在Python或PHP中)为你创建缓存文件。