xml - 使用 XSLT 创建站点是否有意义

标签 xml xslt web content-management-system

<分区>

这项技术还流行吗?

我想制作一个自动转换 XSLT 文件的网站。它应该像这样工作: 当用户访问站点时,单个处理程序将接受他的请求,然后为其找到合适的 XML(根据请求的 URL)并使用其附加的 XSL 文件对其进行转换。

我想这样做是为了方便使用纯 XML 文件更新网站(而不是使用成熟且昂贵的 CMS 系统)。

你说呢?好主意?馊主意?有人有推荐吗?

谢谢!

最佳答案

早在 2002-2003 年,我就 XSLT 做了很多工作(2006-2007 年做了更多)。你对此的看法会有所不同,但老实说我会避免这样做,原因如下:

  • 语法令人眼花缭乱,难以学习,难以正确理解,简单明了会让你头疼。模板本身并不算太糟糕,但加入了一些粗糙的 XPath 表达式,这很糟糕;
  • 对于大小合理的文档和转换,它相对较慢。它是否慢到足以与您相关是您只能通过对您的场景进行基准测试才能发现的东西,所以不要将其作为一揽子规则,更多的是警示故事或警告;
  • 错误消息并没有多大用处,而且很难找出问题所在。与更传统的方法不同,您无法快速启动调试器并单步执行 XSLT;
  • 使用任何现代网络风格的语言(C#、Java、PHP、Python、Ruby 等)生成 HTML 都是简单、直接、易于记录和调试的;
  • 操作 XML 可以说更乏味,并且会生成更多直接操作对象并将它们转换为标记的代码。这当然会因您选择的语言为您提供的工具而异。

最近我真正能看到 XSLT 应用程序的唯一地方是使用生成 XML 的 Web 服务(现在很多生成 JSON 和更容易使用的格式)。

即使在那种情况下,我可能仍会直接使用 Java 中的 JAXB(或其他语言中的类似技术)来操作 XML。

更新:我刚刚遇到 The Death of XSLT in Web Frameworks .例如:

For example: how to hide the row in table (using different CSS style), based on some CONDITION, with XSLT? See:

<tr>
  <xsl:attribute name="style">
    <xsl:choose>
      <xsl:when test="CONDITION">
        <xsl:value-of select="'visibility: visible'">
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="'visibility: collapse'">
      </xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
  ...
</tr>

and now the same with JSP 1.x:

<tr style='visibility:<%=CONDITION ? "collapse" : "visible"%>'>
   ...
</tr>

or with JSP 2.x:

<tr style='visibility:${CONDITION ? "collapse" : "visible"}'>
  ...
</tr>

总结者:

So if you start new project, think twice (or ten times) before jumping into XSLT. And > if you use Eclipse, you can even think twice before using JSP/JSTL. Velocity or > FreeMarker might be a better option.

关于xml - 使用 XSLT 创建站点是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560635/

相关文章:

javascript - 我的网页如何判断用户是否放大了 View ?

java - Adobe 体验管理器 6.2

xml - 从 WSDL 文件确定端点

xml - 使用 xslt 在特定点添加 xml 节点

php - 我应该使用用户可以运行的 PHP 脚本删除 MySQL 条目吗?

javascript - 如何通过 jquery 隐藏代码为 "."例如 1.1、1.2 的数据表行?

c# - 文本编辑器的想法

xml - 存储深层/嵌套结构

javascript - Java EE 应用程序的 UI 技术

xml - 如何在 XSLT 中编写身份转换来保留所选节点的子节点?