Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ML,然后应用您的转换。如果数据源是RSS或类似的,那么XSLT是一种自然的选择_Java_Xslt_Template Engine - Fatal编程技术网

Java ML,然后应用您的转换。如果数据源是RSS或类似的,那么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,它对我们很有效,但是

XPATH和XSLT具有很高的学习曲线,函数式编程可能会让人望而生畏。在时间紧迫的情况下,这可能不是正确的选择


对于前端工作,JSON具有更轻的负载,并且容易得到jQuery和其他Javascript库的支持。您可能需要考虑JSON作为数据协议,因为JQuery库对开发人员来说更容易访问,并且框架的生产率比用XSLT、嵌入的JavaScript在标签中要少得多,糟糕的语法和前端XML/XPATH/XSLT附带的所有其他细节。

我在以前的项目“金融网站”中使用过XML和XSLT,它对我们很有效,但是:

  • 我们有多个客户 改变了我们的产出数量。 我们可以替换XSLT样式表 这使得网站发生了变化 开发人员更容易管理
  • 我们团队中有一位专业的网络编辑。我们给了他们XML示例&他们可以直接编辑样式表
  • 如果昨天网站上出现了任何措辞上的变化(这是一家银行,这种情况出人意料地经常发生),我们可以在不重新部署整个网站的情况下部署新的XSLT
  • 需要多种不同的输出格式。我们使用转换为PDF,这是基于相同的技术,因此我们不难理解:-)

  • 我认为使用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时,曾经的大问题现在已经由主要模板引擎的更新和更成熟的修订版解决了。我们仍然可以从继承.xslt文件的能力中获益匪浅,这是大多数模板引擎所不能做到的。但最终,让许多开发人员提供示例的价值要大得多(例如,在StackOverflow上比较ASP.NET答案和XSLT答案)


    希望有帮助

    XML+XSLT真的很酷。您可以在将来输出多种类型的目标格式。
    但是ne意识到XML中嵌入了HTML。Firefox XSLT不支持“禁用输出转义”。请参阅。

    我使用XSLT进行了重要的开发,在两个不同的站点上都取得了巨大的成功,但都完全失败了

    总结前的几点思考:

    • 我认为没有人会认为XSLT比模板解析引擎强大得多,它是一种函数式语言

    • 虽然它不像大多数p