Java ML,然后应用您的转换。如果数据源是RSS或类似的,那么XSLT是一种自然的选择
XPATH和XSLT具有很高的学习曲线,函数式编程可能会让人望而生畏。在时间紧迫的情况下,这可能不是正确的选择Java ML,然后应用您的转换。如果数据源是RSS或类似的,那么XSLT是一种自然的选择,java,xslt,template-engine,Java,Xslt,Template Engine,XPATH和XSLT具有很高的学习曲线,函数式编程可能会让人望而生畏。在时间紧迫的情况下,这可能不是正确的选择 对于前端工作,JSON具有更轻的负载,并且容易得到jQuery和其他Javascript库的支持。您可能需要考虑JSON作为数据协议,因为JQuery库对开发人员来说更容易访问,并且框架的生产率比用XSLT、嵌入的JavaScript在标签中要少得多,糟糕的语法和前端XML/XPATH/XSLT附带的所有其他细节。我在以前的项目“金融网站”中使用过XML和XSLT,它对我们很有效,但是
对于前端工作,JSON具有更轻的负载,并且容易得到jQuery和其他Javascript库的支持。您可能需要考虑JSON作为数据协议,因为JQuery库对开发人员来说更容易访问,并且框架的生产率比用XSLT、嵌入的JavaScript在标签中要少得多,糟糕的语法和前端XML/XPATH/XSLT附带的所有其他细节。我在以前的项目“金融网站”中使用过XML和XSLT,它对我们很有效,但是:
我认为使用XSLT的主要原因是,如果有多个站点都基于相同的XML,但需要不同的HTML输出。保持简单。这是一个人们越来越欣赏的原则
Velocity或Freemarker的灵活性和通用性令人难以置信。您的代码库将是清晰的、易于理解的,并且运行速度将比X monstrosities快得多 大约5年前,我为一个企业产品创建了一个XML/XSLT驱动的UI。我们仍在使用它,现在回顾我的经验,我可以看到许多优点和缺点: 优点:
- XSL是一种功能强大的声明性语言,对于经验丰富的开发人员来说非常有用和有趣,并且转换可以在几行代码中完成非常惊人的事情
- XSL是为与XML一起使用而设计的,因此,如果您的数据已经是XML,那么它就非常有意义
- 关注点分离(呈现与数据)优于许多模板语言
- 基于XSL的呈现可以很容易地“子类化”。我的意思是:假设您有数据类A和关联的模板A.xslt。对于从A派生的类B,您可以轻松地创建B.xslt,只需很小的差异,并为继承的行为包含A.xslt。这使得由于A.xslt中的更改而导致中断的可能性降低
- 上面这一点也赋予了您进行覆盖的能力。对于关联了A.xslt的类,我们可以轻松地将关联的模板切换到A-custom.xslt,这是对A.xslt的一些小更改和继承。我们可以在现场动态地执行此操作,好处是A-custom.xslt只需几行,而不是原始A.xslt的完整修改副本。占地面积小意味着它更有可能使用多个版本的A.xslt
- 在.NET2.0中,XSLT被编译并变得非常快。Java可能也有类似的技术。(大多数模板语言现在也这样做。)
- 在.NET中,可以创建一个“对象XPath导航器”,它允许您转换数据对象,而无需将它们转换为XML对象。同样,Java中也可能有类似的技术
- XSLT在HTML方面很聪明&很好地处理转义、空白等问题
- XSL是一种功能强大的声明性语言,让新的程序员感到困惑,而熟悉XSLT的人也更少
- XSL是冗长的。XML通常也很冗长
- XSL转换可能比“本机”模板慢。即使在编译时,XSL仍比大多数模板语言有更多的状态开销
- 很难将参数传递给XSLs,您必须根据数据发送参数(强制您创建额外的XML),或者通过系统特定的方法(这可能还涉及构造XML数据)
- 如果您没有ObjectXPathNavigator或等效工具,那么在将数据对象转换为XML进行转换时会产生大量开销
- 根据转换器的功能,在转换为字符串缓冲区,然后将该字符串发送到输出设备时,也可能会产生缓冲开销
- XSLT的使用越高级,您的工具支持您的可能性就越小(特别是当您开始使用include或更快的方式来传递XML数据时)
希望有帮助 XML+XSLT真的很酷。您可以在将来输出多种类型的目标格式。
但是ne意识到XML中嵌入了HTML。Firefox XSLT不支持“禁用输出转义”。请参阅。我使用XSLT进行了重要的开发,在两个不同的站点上都取得了巨大的成功,但都完全失败了 总结前的几点思考:
- 我认为没有人会认为XSLT比模板解析引擎强大得多,它是一种函数式语言
- 虽然它不像大多数p