XML学习笔记---实战XSLT

学习了一下XSLT的语法,自己也编写了几个小例子实践了一下。记录如下:

XSL与XSLT

XSL consists of three parts:
XSLT - a language for transforming XML documents
XPath - a language for navigating in XML documents
XSL-FO - a language for formatting XML documents

XSLT stands for XSL Transformations
XSLT is the most important part of XSL
XSLT transforms an XML document into another XML document
XSLT uses XPath to navigate in XML documents
XSLT is a W3C Recommendation

XSLT is a language for transforming XML documents into XHTML documents or to other XML documents.
XPath is a language for navigating in XML documents.

以上是在W3C上的一些摘录,我的英文太差了,不敢翻译,但还是可以简单的意会的。

总之,XSL和XSLT在狭义上是一致的。
XSLT是XSL中最重要的一部分,
XSLT是一种用来转换XML文档结构的语言。
将XML转换为HTML,是目前XSLT最主要的功能。

CSS与XSLT

CSS同样可以格式化XML文档,但是它有严重的局限性,就是:
1. CSS不能重新排序文档中的元素;
2. CSS不能判断和控制哪个元素被显示,哪个不被显示;
3. CSS不能统计计算元素中的数据;

所以,CSS适合用于静态文档。而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多。因此,我们常常将它们结合起来使用,比如在服务器端用XSLT处理文档,在客户端用CSS来控制显示。可以减少响应时间。

实践

XSLT的主要用途就是数据转换应用。
具体实践一下XSLT是如何对XML进行样式转化的。
blog.xml

<? xml version="1.0" encoding="gb2312" ?>
<? xml-stylesheet type="text/xsl" href="blog.xsl"  ?>  
< blogs >
  
< blog >
    
< name > 久城的学习室 </ name >
    
< author > 久城 </ author >
    
< url > http://www.blogjava.net/realsmy </ url >
  
</ blog >
  
< blog >
    
< name > BeanSoft's Java Blog </ name >
    
< author > BeanSoft </ author >
    
< url > http://www.blogjava.net/beansoft </ url >
  
</ blog >
</ blogs >

blog.xsl

<? xml version="1.0" encoding="GB2312" ?>
< xsl:stylesheet  version ="1.0"  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
    
< xsl:template  match ="/" >
            
< html >
            
< body >
        
< h2 > BLOGS LIST </ h2 >
        
< xsl:apply-templates />  
        
</ body >
        
</ html >
    
</ xsl:template >

    
< xsl:template  match ="blog" >
      
< p >
      
< xsl:apply-templates  select ="name"   />
      
< xsl:apply-templates  select ="author"   />
      
< xsl:apply-templates  select ="url"   />
      
</ p >
    
</ xsl:template >

    
< xsl:template  match ="name" >
      BLOG NAME:
< span  style ="color:#ff0000" >< xsl:value-of  select ="." /></ span >< br />
    
</ xsl:template >

    
< xsl:template  match ="author" >
      AUTHOR:
< span  style ="color:#ff0000" >< xsl:value-of  select ="." /></ span >< br />
    
</ xsl:template >

    
< xsl:template  match ="url" >
      BLOG URL:
< span  style ="color:#ff0000" >< xsl:value-of  select ="." /></ span >< br />
    
</ xsl:template >

</ xsl:stylesheet >

用IE打开blog.xml,显示如下:

BLOGS LIST

BLOG NAME:久城的学习室
AUTHOR:久城
BLOG URL:http://www.blogjava.net/realsmy

BLOG NAME:BeanSoft's Java Blog
AUTHOR:BeanSoft
BLOG URL:http://www.blogjava.net/beansoft

关于XSLT的语法
参考:http://www.w3schools.com/xsl/default.asp

很好的教程。

后记

XML通过XSLT的转换,完全能够实现HTML的显示效果,同时又做到了数据与显示的分离。这让我想到了应用方面。

我能想到的,一方面是一些共同的数据可以直接通过在客户端访问XML文件,XML文件再通过不同的XSLT转换成不同的显示效果显示在页面上,无意中发现优快云社区的每一个帖子就是一个XML文件,可以继续参考学习一下。

另一方面,由HTML页面通过脚本(Script)语言访问xml文件和xsl文件,在用脚本语言进行转换处理,输出在HTML页面上。如果脚本应用JavaScript脚本,那不就是JavaScript和XML的技术应用吗?难道就是传说中的AJAX?!从来没有应用过AJAX,只听说过用AJAX实现异步数据传递。

哈哈,突然有了冲动,下一个目标,学习一下AJAX。

资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值