【问题标题】:What are XSLT strengths and applications? [closed]XSLT 的优势和应用是什么? [关闭]
【发布时间】:2013-05-07 17:12:56
【问题描述】:

在研究了 XSLT 一段时间后,我可以想象,与任何其他技术一样,它可以很好地完成某些事情,但不适用于其他情况。但是,我找不到太多出色的应用程序。

Why choose an XSL-transformation? 似乎有很多关于某些领域的一般利弊的帖子,但问题更多地集中在为前端生成 HTML 上。 XSLT 的其他一些应用程序是什么?最好是它擅长的 XSLT 应用程序。(使用 XSLT 可能不是自然显而易见的也是一个加分项)

XSLT 的一些明显优势似乎(如果我认为它是一种优势,请纠正我):

  • 将 XML 文档转换为 PDF 文档
  • 动态更改一个 XML 文档的结构,使其与另一个 XML 文档的结构相匹配
  • 处理许多不同的模板以在不同的设备上查看
  • 将 XML 文档转换为数据库的导入文件

【问题讨论】:

  • 在我的最后一个职位上,他们大量使用 XSLT 将 XML 转换为 HTML。这在大约 10 年前效果很好,现在如果你有一个 ASP.net MVC 平台,就没有理由这样做了。
  • 使用 XSL 将 XML 转换为其他 XML,尤其是混合内容 XML 或输入和输出相似的地方。对于其他任何事情,可能都有更好的工具。

标签: xml xslt


【解决方案1】:

这些是导致我在编写的大多数程序中使用 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 中,这样做要容易得多。

【讨论】:

    【解决方案2】:

    我喜欢 XSLT 有几个原因:

    • 操作 XML 是一种非常自然的语言
    • 它的功能特性使其成为一种非常安全的 XML 操作语言
    • DataPower 等硬件加速产品使其成为处理 XML 的最快语言
    • 它是真正的开源语言

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 2010-10-07
      • 2011-09-03
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多