XSLT知识

ESB最常见的用途是将传入或者传出的消息从一种格式转换到另一种格式,在ESB中我们利用xslt文件实现。

1.什么是XSLT

首先提到XSLT不得不提到XSL,XSL指扩展样式表语言(EXtensible Stylesheet Language).

在计算机科学中,XSLT是扩展样式表转换语言(ExtensibleStylesheetLanguage Transformations)的简称,这是一种对XML文档进行转化的语言,XSLT中的T代表英语中的“转换”(transformation)。它是XSLExtensible stylesheet  language)规范的一部分。

我们可以这样理解XSL

CSS = HTML 样式表

HTML 使用预先定义的标签,标签的意义很容易被理解。

HTML 元素中的<table> 元素定义表格- 并且浏览器清楚如何显示它。

向HTML 元素添加样式是很容易的。通过CSS,很容易告知浏览器用特定的字体或颜色显示一个元素。

XSL = XML 样式表

XML 不使用预先定义的标签(我们可以使用任何喜欢的标签名),并且这些标签的意义并不都那么容易被理解。<table> 元素意味着一个HTML 表格,一件家具,或是别的什么东西- 浏览器不清楚如何显示它。

XSL 可描述如何来显示XML 文档!

XSL - 不仅仅是样式表语言

XSL 包括三部分:

1.XSLT一种用于转换 XML文档的语言。

2.XPath一种用于在 XML文档中导航的语言。

3.XSL-FO一种用于格式化XML 文档的语言。

在ESB中我们用的最多的是XSLT和Xpath。

但是XSLT是XSL中最重要的部分。

           正确的样式表声明

把文档声明为 XSL 样式表的根元素是 < xsl:stylesheet > < xsl:transform >
注释:   < xsl:stylesheet > < xsl:transform > 是完全同义的,均可被使用!

  根据W3C 的XSLT 标准,声明XSL 样式表的正确方法是:

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

如需访问XSLT 的元素、属性以及特性,我们必须在文档顶端声明XSLT 命名空间。

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"指向了官方的 W3CXSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。

下面我们就举一个实例说明xslt是怎样起作用的。

1.我们先创建一个XSL样式表,note.xsl

note.xsl代码如下:

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

<xsl:stylesheet version="1.0“

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

 <html>

<body>

<h2>Note List</h2>

<table border="1">

    <trbgcolor="#9acd32">

        <thalign="left">TO</th>

        <thalign="left">FROM</th>

        <thalign="left">MESSAGE</th>

</tr>

    <xsl:for-each select=“noteList/note">

    <tr>

        <td><xsl:value-of select=“to"/></td>

        <td><xsl:value-of select=“from"/></td>

        <td><xsl:value-of select=“body"/></td>

</tr>

   </xsl:for-each>

</table>

</body>

</html>

 </xsl:template>

</xsl:stylesheet>

Note.xml代码如下

<?xmlversion="1.0"?>

<noteList>

<note>

<to>123</to>

<from>123</from>

<heading>Reminder</heading>

<body>Don‘tforget the 红烧 Meat!</body>

</note>

<note>

<to>123</to>

<from>嫂子</from>

<heading>Reminder</heading>

<body>Don‘tforget 换尿布!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

</noteList>

下面我们把 xsl 连接到 xml 文件

<?xml version="1.0"?>

<?xml-stylesheet type=“text/xslhref=“note.xsl"?>

<noteList>

<note>

<to>123</to>

<from>123</from>

<heading>Reminder</heading>

<body>Don‘tforget the 红烧 Meat!</body>

</note>

<note>

<to>123</to>

<from>嫂子</from>

<heading>Reminder</heading>

<body>Don‘tforget 换尿布!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

<note>

<to>123</to>

<from>淘宝彩票</from>

<heading>Reminder</heading>

<body>亲,你中大奖了!</body>

</note>

</noteList>

用浏览器打开note.xml可以看到图2.2所示


到这里有同学该问了,你这是xsl文件,怎么没有xslt文件呢?

其实在使用中后缀名互相改的,.xslt可以改成 .xsl,但是二者在处理xml文档时的顺序略有区别。用兴趣的同学可以研究一下



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值