这些是导致我在编写的大多数程序中使用 XSLT 的优势;您的情况可能会有所不同。
1 更舒适地处理 XML
因为 XSLT 是从头开始设计用于处理 XML 数据的,所以有些人发现它对 XML 的阻抗失配比大多数传统编程语言要低;XQuery 也是如此。鉴于设计合理的 XML 输入,使用 XSLT 处理它(无论出于何种目的)通常比使用另一种语言更容易(有些人会说几乎总是)。我怀疑,许多认真的 XML 用户会本着这种精神概括您列出的 XSLT 的优势,并在输入数据为 XML 时更喜欢 XSLT(或 XQuery)。在 XSLT 中生成 XML 也很容易,而许多使用其他语言的程序员似乎发现生成格式良好的 XML 的过程容易出错。
2 声明式函数式语言
XSLT 是一种声明性的函数式语言,并具有该类语言的许多优点。一些面向过程语言的程序员发现很难准确理解,因为它是声明性的和函数式的。非程序员发现 XSLT 比来自 C 或 Java 的程序员更容易学习的情况并不少见。(一些程序员似乎觉得这是一种威胁性的经历,这可能解释了他们对 XSLT 和 XML 表现出的一些敌意。)
3 XML 语法
因为 XSLT 样式表是用 XML 编写的,所以任何好的现成 XML 编辑器都很容易提供出色的语法指导;我的经验(就其价值而言)是,在使用 XSLT 编写时,我几乎没有犯任何语法错误——与我在其他语言中的经验形成鲜明对比——而且当我打错字时,它会立即变得明显并且可以立即纠正。
当然,有些人大体上喜欢 XSLT,但特别挑出它的 XML 语法表示不喜欢。创造一个世界需要各种各样的东西。
4 模板和数据驱动的控制流
从技术上讲,XSLT 的特点是在输入上使用模板和模式匹配来控制执行流程。这使得编写在出现意外输入或输入格式演变时表现稳健的 XSLT 程序变得更容易,并且(与 XSLT 计算顶级样式表和导入样式表之间的模板优先级的规则相结合)更容易编写新的程序来添加现有程序的少量功能。
XSLT 1.0 不是特别适合处理非 XML 数据;在 XSLT 2.0 中,这样做要容易得多。