XSLT是否值得投入时间,是否有任何实际的替代方案?

时间:2010-05-20 18:37:34

标签: html xml xslt architecture offline

我意识到关于这个主题还有其他一些问题,而且一般的共识是使用您选择的语言来操纵XML。但是,这种解决方案并不适合我的情况。

首先,项目范围: 我们希望开发独立于平台的电子学习,目前,它是一堆HTML页面,但随着它们的成长和发展,它们变得难以维护。 我们已经有大约30个模块,每个模块有10-30个HTML页面,而且这个模块一直在增长。

这个想法: 有一个XML文件+ Schema pre eLearning Module,然后生成一些XSLT文件,将XML处理成电子教学模块。通过XSLT将XML转换为HTML。

为什么: 我们希望flexibilty能够轻松地重新格式化内容 我意识到CSS在这里是一个可行的选择,特别是在视觉上改变了look'n'feel,但我们可能需要比这更多的功能,并且重建页面。 如果我们决定改变页面布局或功能,我猜测改变“共享”XSLT文件比更新HTML文件更容易。

根据一些“参数”,我们可以输出截然不同的页面布局/结构,超出CSS的范围。 XSLT可以采用QueryString参数吗?不确定..

现在,所有这些都必须与平台无关,并且能够“脱机”运行,即没有服务器为HTML提供动力,因此服务器端技术是不可能的(C#,PHP)

我目前为XSLT读过的否定词:

  • 开销?不完全确定为什么...是否需要转换为HTML的计算能力?
  • 难学
  • 更好的选择

现在,我想知道的是:

  • 这个“离线”实际上有没有可行的替代方案?
  • 我是否以正确的方式解决这个问题
  • 你们有什么建议或选择。

编辑: 无论有没有XSL,CSS和JQuery都将是我们解决方案中非常重要的一部分 开发。 一般整理(邋eng的英格兰!)

4 个答案:

答案 0 :(得分:8)

使用XSLT方案是合法的。如果您发展专业知识,XSLT是强大的。

  • 开销:是的,对于大型文档,转换可能需要几秒钟。对每分钟多次调用的大型文档进行转换可能是一个糟糕的策略。这对你来说不是一个大问题,因为你不会按需进行这些转换,就像你想要修改一样。
  • 难学。你可以很快使用XSLT,但要注意:就在看起来XSLT变得越来越容易时,你会惊讶于它突然变得棘手!您认为困难的事情可能很容易,反之亦然。例如,您可能必须导入或创建一些模板才能进行一些简单的日期格式化。尽管如此,这一切都是可行的。不要害怕学习如何做“模板”。
  • 更好的选择。是的,有更好的选择,但它们特定于平台。例如,我在.NET领域,我已经放弃了XSLT,转而操纵我们的新XElements等,而VB.NET嵌入式XML非常强大和简单。但是当你想避免依赖特定平台时,XSLT仍然很棒。

你仍然会使用CSS作为策略的一部分,对吧?将XSLT更改为输出样式始终比手动更改30个模块更好,但精心规划的CSS样式表仍然可以帮助简化操作(提高可维护性和灵活性)。

总结:组织静态html页面的布局/修订,独立于平台,以便灵活分发:是的,从我所看到的,你有一个很好的策略。您在XSLT中开发的专业知识也将在未来发挥作用。在掌握了XSLT之后,你将真正理解XML,这将永远有用。

答案 1 :(得分:4)

XSLT是一个理想的工具,用于在您描述的情况下从XML文档生成HTML。关于XSLT的处理开销的常见抱怨 - 它需要将整个源XML文档加载到内存中 - 如果您使用XSLT生成静态HTML页面,则实际上并不相关,除非您生成数十万个。

(事实上,投诉实际上只与源XML文档很大的情况有关。如果您构建了一个围绕从大型XML文档动态生成HTML的架构,选择XSLT作为您的技术可能是一个错误,但是这不是大错。)

你当然应该使用CSS。

答案 2 :(得分:2)

将您的数据与演示文稿分开。

将演示文稿渲染卸载到浏览器,使用CSS和CSS“增强器”,如SASS,Less等。

生成严格的XHTML - 可以使用CSS格式化,可以使用XML解析器等进行解析

像交互一样使用JQuery

XSLT非常重量级,并且不能很好地扩展,而XHTML + XSS + JQuery非常清楚,并且存在大量工具。

答案 3 :(得分:0)

如果你已经知道C#或VB.NET考虑使用LINQ to XML,那么代码会更长,但对于非XSLT专家来说,编写和维护可能会少一些。

这一切都取决于您需要多少XML转换,只需1或2,然后我就不会花时间学习XSLT。