现在的位置: 首页 > 综合 > 正文

初探XSL,XSLT,XPath以及其他

2013年08月06日 ⁄ 综合 ⁄ 共 1830字 ⁄ 字号 评论关闭

要说接触这些W3C的语言或是标准,肯定都是从HTML语言开始的.我也不例外,而且因为HTML的简单易懂(当然说的是10年前,现在已经扩展的非常难懂了),因此对于这些标记语言比如XML,就没有太在意.最近项目中就有个模块是吧普通的网页抓取过来,然后用XPath去分析HTML的脚本,然后把需要的结果使用XML进行保存,这样就把数据和显示分开了,最后再根据客户端的不同,使用不同的XSLT进行转换,生成和设备端对应的HTML脚本供浏览.
可以看出来里边涉及了很多的标记语言,因此今天就打算粗略介绍一些这些知识.就我个人观点,除非马上就要用,否则这种浅尝辄止的了解就足够了.我是在W3Schools里系统的了解了一番,简要介绍在这里.

  1. XSL
  XSL应该是和XML相对应的,一个是描述数据的,一个是描述怎样表示和处理数据的.XSL分为三个部分.第一,XSLT,就是怎样表现数据的语言. 第二,XPath,怎样搜索数据的语言.第三,XSL-FO,格式化数据的语言(好像没听说过). 一个比较特殊的实例就是CSS和HTML,HTML应该说是一种特殊的XML,只是有了预定义的标签.而CSS,是表示如何显示HTML的语言,而 HTML的臃肿定义已经包含了很多的展示数据的标签比如<B></B><I></I>等.

  2. XSLT
  XSLT使用XPath进行XML数据的检索.根节点是<xsl:stylesheet> 或者是 <xsl:transform>.
  <xsl:template match="/"> 元素指定了在什么位置应用模板中定义的转换方法进行转换.
  <xsl:value-of select="..."/>元素,其中value-of表示把XML中的数据显示在这里,后边的select是XPath语句,表示只显示XPath筛选出来的数据.
  <xsl:for-each select="aa[bb='cc']">这个元素是循环检索显示的符合标准的数据,XPath指在aa节点下,所有bb属性等于cc的数据.
  <xsl:sort select="aa"/> 指定了最终数据的现实按照aa节点的值进行排序.
  <xsl:if test="price &gt; 10">条件判断元素,只显示满足条件的元素,注意逻辑判断符号<,>,都要用&gt;,&lt;来代替.
  <xsl:choose><xsl:when test="price &gt; 10"></xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose> 和编程语言中的Case...When语句一样,对数据按条件进行归类.
  <xsl:apply-templates>指对当前元素以及当前元素的子元素应用符合要求的Template.
  在客户端,可以使用JavaScript应用XSLT吧XML翻译成XHTML进行显示.这样会依赖客户端浏览器的规范.
在服务端,可以用ASP,.Net等语言使用平台的XML功能支持进行转换.
  3.XPath
  一系列的其他语言XQuery,XLink,XPointer和XSLT都依赖于XPath进行数据检索.XPath功能强大内置了上百个function.
Nodes 包括Document Node, Element Node 和Attribute Node.
  一些数据检索语法如下:

  检索语句中可以包含一个用[]指定的逻辑判断语句,表示只获取符合条件的数据.
  通配符

  使用 | 把两个或者多个路径条件组合起来,结果是单独检索获得的结果的和.

  XPath Axis,表示节点之间的关系条件.

  4. XQuery
  XQuery应用XPath对XML数据进行检索,结果不是节点集合,而是一个子XML数据.类似于使用SQL语句检索数据库
  5. XLink和XPointer
  XLink定义了在XML中加入超链接的基本方法,而XPointer定义了更有针对性的定义超链接到指定XML数据.

 

 

 

 

 

学习曲线:

XSL(XSL 包括三种语言:XSLT、XPath 以及 XSL-FO): http://www.w3school.com.cn/xsl/xsl_languages.asp

XPATH: http://www.w3school.com.cn/xpath/xpath_nodes.asp

XQuery: http://www.w3school.com.cn/xquery/xquery_example.asp

 

 

抱歉!评论已关闭.