Xml 为什么XSLT从未见过互联网繁荣时期出现的许多其他语言的流行?

Xml 为什么XSLT从未见过互联网繁荣时期出现的许多其他语言的流行?,xml,xslt,Xml,Xslt,XSLT(XML样式表语言转换)的使用从未像互联网繁荣时期出现的许多其他语言那样流行。虽然它在使用中,在某些情况下被大型成功公司(如暴雪娱乐)使用,但它似乎从未进入主流。您认为这是为什么?XSL是主流并被广泛采用。你指的是什么其他语言?XSL不是一种编程语言,只是一种转换语言,所以它的范围非常有限。嗯。。。也许是因为编写XSLT很痛苦。。。几个月前我不得不写一些XSLT,我梦想着尖括号 <Really> <No> <fun/>

XSLT(XML样式表语言转换)的使用从未像互联网繁荣时期出现的许多其他语言那样流行。虽然它在使用中,在某些情况下被大型成功公司(如暴雪娱乐)使用,但它似乎从未进入主流。您认为这是为什么?

XSL是主流并被广泛采用。你指的是什么其他语言?XSL不是一种编程语言,只是一种转换语言,所以它的范围非常有限。

嗯。。。也许是因为编写XSLT很痛苦。。。几个月前我不得不写一些XSLT,我梦想着尖括号

<Really> 
    <No>
        <fun/>
    </No>
</Really>         


(我知道,这不是xslt)

因为大多数xslt实现都有很高的内存占用(我想这是由语言设计引起的),因为人们往往滥用XSLT来处理各种它不太适合的事情,而且XSL的纯声明性质使得某些类型的转换非常困难。

通常,需要将XML数据转换为不同形式的XML数据的时候,但不做任何其他处理,它将是非常有限的。通常,XML被用作两个独立系统之间的中介,其中一个系统通常是定制的,用于处理另一个系统的输出。因此,只编写其中一个系统来处理另一个系统的XML输出就更简单了,而不需要执行某种转换的额外步骤。

这对XML很好,但对典型的编码并不好。它缺乏典型的基本概念(即可变变量),使本应简单的内容变得相当复杂(或不可能)。它的大多数问题都源于这样一个事实:xml是一种伟大的数据表示语言,但不是一种伟大的编程语言。也就是说,我每天都使用它,并会在有意义的地方推荐它。与外部名称空间结合使用,它可以变得更有用(调用java等)。最后,这是另一种学习语言,许多程序员喜欢使用他们习惯或类似的东西。

XSLT使用功能性编程——大多数程序员不习惯的(因此,有些人认为这是非直觉的)。.

我认为它试图覆盖太多的用例,从而成为一种图灵完整语言(或者我听说是这样)。如果您尝试进行任何非平凡的转换,您最终会编写复杂的循环、条件。。。用一种丑陋而冗长的语言,最好用GPL来完成


在我看来,这种复杂性使得编写正确的XSLT实现变得困难,并且限制了可用的选择,因此,经常喜欢修补小而高效的代码而不是企业级代码的黑客广泛使用XSLT。

XSLT非常强大,但需要以不同的方式思考问题。由于早期版本中没有提供有用的数据功能,它也让自己的生活变得艰难。例如,以ToUpper()样式的方法为例,您通常使用以下方式实现它:

<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>  

<xsl:value-of select="translate($toconvert,$lcletters,$ucletters)"/>
abcdefghijklmnopqrstuvxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

这不是最简单的编码方式

因为更容易编写和维护使用Java、C#、JavaScript等对XML流进行反序列化、转换和导出所需输出的代码,而XSLT没有提供实质性的性能优势


XSLT使某些事情变得简单,但也使其他事情变得非常、非常困难。

我认为可以说XML语法对于描述数据是很好的,但对于本质上是编程语言(XSLT)的东西来说,它不是一种很好的语法。

一个问题是XSLT看起来很复杂。任何开发人员都应该能够选择语言结构,因为在大多数其他语言中都有类似的结构。问题是结构和数据看起来完全相同,这使得很难区分两者,这使得XSLT比其他语言更难阅读

第二个问题是,它的用途比其他语言更加有限。XSLT擅长于它所做的事情;在XML上进行复杂或彻底的转换。但是它不像其他语言那样适用于范围广泛的问题,所以它没有被广泛使用

第三,许多编程语言都有自己的库来转换XML。在使用XML时,大多数情况下只需要进行小的更改或查找。XML也可能由开发人员已经用另一种语言编写的程序生成或使用。这些因素意味着使用语言的内置实用程序更加方便

所有这些问题导致的另一个问题是惯性。也就是说,人们不知道这一点,他们看不出他们对它有多大的需求,所以如果有其他选择,他们会避免使用它作为解决方案


您最终得到的是一种语言,它是许多开发人员在创建解决方案时的最后选择。如果XSLT是这项工作的最佳工具,它甚至可能被避免使用。

XSLT对于xml到xml非常有用,因为您拥有已转义的数据以及输入和输出的清晰定义。在我看来,将它用于xml2html之类的东西似乎是一件非常头疼的事情,而且对于几乎所有的动态语言和css,输出都很容易用样式实现。

正如前面所说的XSLT(如JavaScript的“好部分”)是一种函数式编程语言。大多数传统程序员讨厌这种无状态。还有太多的传统程序员讨厌尖括号

但是,最重要的是,正确使用XSLT以一种与平台无关的方式解决了Web服务器的声明性GUI生成和数据绑定问题。像微软这样的供应商没有动力去庆祝这个“公司”