XSL语法介绍

2016-02-19 14:45 1 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享XSL语法介绍的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - Web开发 】

例子已经放在上面,下面我们可以来仔细的分析其中的语法结果和关键所在:
  
    首先注意到的是,XSL文件本身即是一份 XML文件,所以在XSL文件的开头,一样有和XML文件相同的声明。W3C这个XML的标准机构为XSL定义了很多标记(元素),XSL文件就是这些标记和HTML标记的组合。在XSL文件中,必须有如下一行的代码:
  
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  
    这里,xsl:stylesheet是XSL文件的根元素,在根元素中包含了所有的排版样式,样式表就是由这些排版样式组合成的;xmlns:xsl="http://www.w3.org/TR/WD-xsl"这一句主要用来说明该XSL样式表是使用W3C所制定的XSL,设定值就是XSL规范所在的URL地址。
  
    实际上,这里"http://www.w3.org/TR/WD-xsl"就是一个名字空间(namespace),我们在上面关于XML Schema语法介绍的时候已经进行过介绍。这是一个标准的名字空间。"stylesheet","template","for-each"等等关键字都是这个名字空间所定义的。
  
    当然在xsl:stylesheet还可以设定其他的属性,其他的属性有:
  
     1. default-space:决定是否保留XML文件中的空白,仅当值为"default"时保留。
  
     2. indent-result:决定是否保留XSL文件中的空白,值为"yes"时保留。
  
     3. language:设定在XSL文件中使用的脚本语言。
  
    然后,我们在上面的代码中看到有如下的代码:
  
    <xsl:template match="/">
     
    </xsl:template>
  
    这里实际上是表示了XSL解析器对XML文档的处理过程,它从根节点(由match="/"决定,这里"/"就表示根节点)开始,对XML文档进行遍历,并根据具体的代码从XML文档中取出相关的内容。这里关于属性match的取值是一个比较复杂的问题。它实际上表示的含义是从XML文档中取出一个特定的节点集合(XML文档可以被看成一个树的结构,这个在后面关于XML解析器分析中有详细的介绍)。这里,我们通过几个简单的例子来说明属性match的取值。
  
    比如下面一行代码:
  
    <xsl:template match="/">
  
    这行代码的意思是告诉XSL解析程序,当前需要处理的节点是根节点下的内容(用"/"来表示根节点),其实这里的match值内容的编写是要符合XPath的语意。关于XPath我们在后面的章节中会进行详细的介绍。
  
    再举一个例子:
  
    <xsl:template match="shoppingcart/item">
  
    这行代码要匹配的是shoppingcart元素下的item元素。而不管shoppingcart在XML文档结构树下的哪一个位置。比如XML文档的其中一段是这样的。
  
    <shoppingcart>
    <item>
    <itemNo>3333</itemNo>
    <itemName>屠龙刀</itemName>
    </item>
    <item>
    <itemNo>4444</itemNo>
    <itemName>离别钩</itemName>
    </item>
    </shoppingcart>
  
    那么它匹配的内容就是
     <item>
     <itemNo>3333</itemNo>
     <itemName>屠龙刀</itemName>
     </item>
     <item>
     <itemNo>4444</itemNo>
     <itemName>离别钩</itemName>
     </item>
  
    而下面这个例子:
  
    <xsl:template match="/shoppingcart/item">
  
  表示只匹配XML文档根节点下的shoppingcart这个节点下的所有item元素。也就是说如果shoppingcart不是直接在根节点下的,它就不符合这个匹配条件。
  
    再看一个例子:
  
    <xsl:template match="price[@unit='USD']">
  
  这个例子

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

com">知名作家加著名评论家王朔先生的地方</王朔>
  
    我们可以用<xsl:value-of select="王朔/@网址"/>来得到值"www.wangshuo.com"。
  
    以上包括了XSL的大多数基本的语法,更加详细和完整的介绍需要参看W3C相关的最新的文档,可以在WWW.W3C.ORG/TR下找到。
  
    根据上面的分析,我们可以看到XSL实际上采用的是一种转换的思想,它最终将XML文档转换为另一种可用于输出的文档,而CSS则没有任何转换动作,在整个过程中没有任何新码产生。 另外,在XSL中90%的样式规定在CSS中都有定义,但仍然有一些效果是CSS无法描述的,必须使用XSL不可。这些功能包括文本的置换、根据文本内容决定显示方式、文档内容排序等,都是XSL所独有的。再者,XSL遵从XML的语法,而CSS的语法自成体系。
  
    选择样式单还要考虑不同浏览器对样式单的支持程度。目前IE5与Netscape的最新版本都支持CSS,但支持的程度都有限。至今为止,IE5尚不能完全支持CSS1,即便是支持的部分也存在很多错误,对于CSS2也只提供部分支持。Netscape在对CSS的支持上已经优于IE5,它采用新一代的Raptor/Gecko引擎技术,已经能够完全支持CSS1,但对CSS2的支持计划尚不明朗。而对XSLT而言,只有IE5支持,Netscape5并不支持。 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1607834.html

延伸阅读
标签: ASP
    asp+ 给我们提供了一套数据表格和数据列表的控件。这些控件可以帮助我们定制我们UI(user interFace 用户界面)而不去考 虑一种数据库或者其他的数据库。例如:在下面的例子中,我们将要介绍一下<asp:datagrid runat=server控件是怎么样通过 sql 语句给我们提供数据的 <%@ Import Namespace="System.Data" %...
标签: Web开发
一. XSL入门 1.XSL---XML的 HTML网页使用预先确定的标识(tags),这就是说所有的标记都有明确的含义,例如p是另起一行h1是标题字体。所有的浏览器都知道如何解析和显示HTML网页。 然而,XML没有固定的标识,我们可以建立我们自己需要的标识,所以浏览器不能自动解析它们,例如table可以理解为表格,也可以理解为桌子。由于XML的可扩展性,使...
由C#转入Java一段时间了,总结下个人认为的Java同C#语法之间的不同之处,有不同意见之处还望各位海涵 刚学Java时觉得语法同C#大致是相同的(应该说C#同Java大致相同,毕竟人家微软的C#是有意模仿Java的语法习惯的) 比尔.盖茨曾经说过:“Java是最卓越的程序设计语言” 言归正传,下面探讨Java同C#的语法不同之处。。。 1,命名空间与包 C#...
标签: ASP
       列表,数据和数据棒定    asp+ 给我们提供了一套数据表格和数据列表的控件。这些控件可以帮助我们定制我们UI(user interFace 用户界面)而不去考虑一种数据库或者其他的数据库。例如:在下面的例子中,我们将要介绍一下<asp:datagrid runat=server>控件是怎么样通过sql 语句给我们提供...
标签: Web开发
本期介绍多个XSL对于VBScript、JScript增加的方法、属性,以充分发挥XML的优势,用于xsl:script、xsl:eval标记内表达式的编写或xsl:if、xsl:when的expr属性。 一、absoluteChildNumber 含义:返回结点相对于它所有的兄弟(不论名字是否相同)的序号。 语法:absoluteChildNumber(node) 参数:node ── 对象,欲返回...

经验教程

75

收藏

69
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部