|Home|Knowledge|Economic&M|Technology|English|PCFAQ|Read|See|Football|Writing|July|TagS|

 Placard

加载中...

Category
加载中...
Calendar
加载中...
Latest Entries
加载中...
Latest Comments
加载中...
Last Messages
加载中...
Links
Information
加载中...
Search
Other

          人生没有彩排,每天都是现场直播! 

  什么是XSL
  XSL 之于 XML 就像 CSS 之于 HTML。它是指可扩展样式表语言 (EXtensible Stylesheet Language)。这是一种用于以可读格式呈现 XML 数据的语言。XSL 实际上包含两个部分:

  * XSLT – 用于转换 XML 文档的语言

  * XPath – 用于在 XML 文档中导航的语言

  XSLT 是指 XSL 转换 (XSL Transformation),它是 XSL 最重要的部分。

  XSLT 可以将 XML 文档转换为其它 XML 文档、XHTML 输出或简单的文本。这通常是通过将每个 XML 元素转换为 HTML 元素来完成的。由于 XML 标签是用户定义的,浏览器不知道如何解释或呈现每个标签,因此必须使用 XSL。XML 标签的意义是为了方便用户(而不是计算机)理解。

  XSLT 还可以对 XML 树进行下列操作:

  * 添加和删除元素

  * 添加和删除属性

  * 对元素进行重新排列或排序

  * 隐藏或显示某些元素

  * 查找或选择特定元素

  XSL 语法

  您可能还记得 XML 概述文章中提到过,所有 XML 文档都是以 XML 声明开头。XSL 样式表也是一样。任何 XSL 文档的第一行实际上都是 XML 声明:

  <?xml version="1.0" encoding="ISO-8859-1"?>

  XSL 是否与 XML 相同?

  既是又不是。说是,是因为它们遵循相同的语法规则(只有少许差异,下面我将会讲到)。说不是,是因为它们的用途不同:XML 用于承载数据,而 XSL 则用于设置数据的格式。

  在 XML 声明之后,就是 XSL 声明,例如:

  <xsl:stylesheet>

  或

  <xsl:transform>

  但是,在大多数实际情况下,XSL 声明看起来要稍微复杂一些:

  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  这是因为,根据 W3C 联盟的建议,它还包含命名空间和 XSL 规范的版本。

  XSL 声明与 XML 声明的不同之处在于,XML 声明只写一行,而且没有结束标签,而 XSL 声明必须包含结束标签,该标签表示 XSL 样式表结束:

  </xsl:stylesheet>

  请注意,这并不与 XML 语法规则冲突:XSL 样式表是完全有效的 XML 文档,因为它有一个根元素,由 标签指定。

  在什么情况下应该使用 XSL?

  XSL 在设计时有几个目标用途,这些用途使它成为某些开发情况下的完美解决方案,而对另一些开发情况则毫无用处。

  XSL 专门用于处理 XML 文档,并且遵循 XML 语法。因此,它只能在支持 XML 的应用程序中与 XML 结合使用。最合适使用 XML 和 XSL 的情况是:Web 门户、新闻聚合器、社区网站或其它任何需要向各种设备及大量客户端提供信息的 Web 应用程序。

  XSLT 是一种基于模式匹配的语言。它会查找匹配特定条件的节点,然后应用相应的规则。因此,它不具备大多数编程语言的计算能力。例如,XSL 无法在运行时更改变量的值。它不应该用于从使用复杂公式的动态数据源(例如在线商店)来计算值。Web 编程语言更适于此用途。

  XSL 不能代替或补充 CSS。它不应(也不能)用于设置 HTML 的样式。但是,您可以将其用于需要频繁重新设计可视化效果、频繁更换布局以及以灵活格式处理数据的网站。

  XSL 不是内容管理工具。它不应(也不能)用于更改 XML 文档的内容或者编辑信息。但是,您可以将 XML 和 XSL 用于需要处理几种不同格式文档的内容管理系统。

阅读全文 | 回复(0) | 引用通告 | 编辑   

  Post  by  醉无心 发表于 2008-4-3 11:41:00
  • 标签:html 
  • 发表评论:
    加载中...

    Google

     

    Power By 加载中...

    Powered by Oblog.