XML学习笔记---实战XSLT

Posted on 2007-09-14 15:50 久城 阅读(386) 评论(1)  编辑  收藏 所属分类: XML
学习了一下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转换成不同的显示效果显示在页面上,无意中发现CSDN社区的每一个帖子就是一个XML文件,可以继续参考学习一下。

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

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



欢迎来访!^.^!
本BLOG仅用于个人学习交流!
目的在于记录个人成长.
所有文字均属于个人理解.
如有错误,望多多指教!不胜感激!

Feedback

# re: XML学习笔记---实战XSLT  回复  更多评论   

2007-09-14 21:12 by 自在淳羽
呵呵,我们项目中的显示全部是用XSLT实现的,总体感觉这个技术是XML与HTML的纽带,通过JAVA可以通过Document对象动态的生成XML文档,然后又由XSLT做相对简单的显示处理,还可以融合CSS和Javascript把整个过程浑然一体。

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


网站导航:
 

Copyright © 久城