当前访问本站: hits

yjhmily

坚持走自己的路……

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
因为最近要实现XML转HTML的功能!所以研究了一下XSL技术!感觉还不错!这里与大家分享!希望对XSL新手有帮助!

下面的概念将说的有点大,(如果比较晕的话就别看了!直接跳到星号线以下)

什么是XSL :
可扩展的样式语言(Extensible Style LanguageXSL)包括变换语言(transformation language)和格式化语言(formatting language)。每种语言都是一个XML应用程序。变换语言提供定义规则的元素如何将XML文档变换成另一个XML文档。被变换的XML文档可能使用原文档的标记和DTD,或者使用一组完全不同的标记。

实际上,XSL是两种语言,而不是一种。第一种语言是变换语言,第二种是格式化语言。变换语言是一种很有用的语言,它与格式化语言无关。它能够把数据从一种XML表示移到另一种表示,这种功能,使它成为基于XML的电子商务、电子数据交换、元数据交换以及应用于需要在相同数据的不同XML表示之间进行转换的重要组成部分。由于缺乏对人们要浏览的显示器上显示数据的了解,这些用途还要结合起来使用。它们纯粹是用来将数据从一种计算机系统或程序移到另一种计算机系统或程序中。

XML基础 :

众所周知:每个结构整洁的XML文档都是树形结构(tree)。树形结构是一种数据结构,它是由连接起来的节点(node)组成的,这些节点起始于一个称为根节点(root)的单节点。根节点连接它的子节点,每个子节点可以连接零个或多个它自己的子节点,依次类推。没有自己的子节点的节点称为叶节点(leave)。树形结构的图表更像家谱,列出各个先辈的后代。树形结构最有用的特征是每个节点及其子节点也会形成树形结构。因此,一个树形结构就是所有树形结构的分级结构,在此分级结构中,各树形结构都是由更小的树形结构建立的。

正因为XML有这样的特征,对于XSL,特性,命名域(namespace),处理指令以及注释必须也作为节点看待.而且文档的根节点必须与根(基本)元素区别开来.因此,XSL处理程序假定XML数形结构包含下列七类节点 :根节点,元素,文本,特性,命名域,处理指令,注释;

**************************************************************************************************************************

概述一下就是:   XSL变换中,XSL处理程序读取XML文档和XSL样式单。基于处理程序在XSL样式单中找到的指令,输出新的XML文档。


实际上在使用中频率最高的就是将一段XML通过XSL转化为HTML,然后再页面输出.特别是在一些需要用到模板页面的项目中,XSL的用处是比较大的!

最快的学习莫过于看实例,下面我就基于XSL最简单的语法写一个XSL的"Hello world"!呵呵!

假定现在有一段这样的XML:

 1 <!--XML Example-->
 2 <root value="选择你喜欢的搜索引擎">
 3 <item href="http://www.baidu.com">
 4 百度
 5 </item>
 6 <item href="http://www.google.com">
 7 Google
 8 </item>
 9 </root>
10 


根据XML和将要显示的页面样式,定义XSL文件:

<!-- 自定义的XSL文件-->
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="root">
<!-- 这里用来写将要显示在页面上的HTML代码-->
<table>
<tr>
<xsl:value-of select="@value" />
</tr>
<xsl:for-each>
<tr>
<a href="{item/@href}">
<xsl:value-ofselect="item"/>
</a>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
   


转换后生成的页面效果:

xslPic.JPG
最后,我简单解释一下上述XSL中用到的XSL语法:

<xsl:value-of select="@value" />:           取XML文件中<root>节点的value属性值;
{item/@href}:                               取XML文件中<root>根节点下<item>的href属性值;
<xsl:value-of select="item"/>:             取XML文件中<root>根节点下<item>的内容;
<xsl:for-each></xsl:for-each>:              循环执行标签体内容;

关于XSL的语法的是和应用还有很多例子,我会在今后的文章中给出,欢迎大家指点!谢谢!

预告:XSL初体验(二)-XSL常用语法



   
   








posted on 2006-11-02 11:51 kangxm 阅读(3410) 评论(1)  编辑  收藏 所属分类: XML&XSL

Feedback

# re: XSL初体验(一)-XML转HTML 2006-11-02 14:10 fef
你是否才华横溢而无奈没有满意的工作,

你是否经验不足而求职碰壁。

没关系,全球最大最早的网上软件工厂已经腾空出世了!

即可注册米鼠网会员,就可兼职,做项目,赚大钱。
大家,推广米鼠6,8群。米鼠6,8群32141736,32141620


  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: