`

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转换成不同的显示效果显示在页面上,无意中发现CSDN社区的每一个帖子就是一个XML文件,可以继续参考学习一下。

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

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

分享到:
评论

相关推荐

    xml-apis-1.4.01.jar.zip

    - **XSLT API**:支持XML转换为其他格式,如HTML或PDF,基于XSLT(eXtensible Stylesheet Language Transformations)规范。 - **XML Schema API**:处理XML Schema定义,用于验证XML文档是否符合指定的模式。 了解...

    testng-xslt-1.1.2.zip

    这个压缩包文件“testng-xslt-1.1.2.zip”包含了这个扩展的源代码、文档以及可能的库文件,使得开发者能够方便地集成到他们的测试工作中,进行更高效的质量管理和故障排查。 TestNG是Java领域中广泛使用的自动化...

    xml-xslt-xsl-fo-dotnet:使用XML,XSLT,XSL-FO和FO.NET在.NET中生成PDF文档的示例

    xml-xslt-xsl-fo-dotnet 使用XML,XSLT,XSL-FO和在.NET中生成PDF文档的。 XML数据示例,XSL样式表和生成的PDF位于文件夹中(XML和XSL由)。 产生结果result.pdf : 建立解决方案 将source.xml和stylesheet.xsl...

    xml-commons-resolver-1.1

    在实际应用中,XML Commons Resolver 1.1 可以广泛应用于XML解析、XML验证、XML Schema解析、XSLT转换等多个领域。例如,在开发Web服务或企业级应用程序时,如果需要处理包含外部实体引用的复杂XML文档,XML Commons...

    XML-LibXML-2.0126.tar.gz

    3. **XSLT支持**:XSLT(eXtensible Stylesheet Language Transformations)用于转换XML文档。LibXML包含了XSLT处理器,可以将XML文档转换成其他格式,如HTML或PDF。 4. **DOM(Document Object Model)接口**:...

    j-sim安装程序xml补丁xml-java-packages.zip

    JAXP包括了用于解析XML、执行XSLT转换和验证XML文档的接口。在J-Sim中,jaxp.jar作为XML处理的基础框架,使得开发者可以灵活地选择不同的解析器和转换器。 综上所述,J-Sim的XML补丁xml-java-packages.zip不仅提升...

    testng-xslt-1.1.2-master

    在"testng-xslt-1.1.2-master"这个压缩包中,我们可以找到TestNG-XSLT的源代码和相关资源,以便于我们理解和定制自己的测试报告。以下是这个项目中的关键知识点: 1. **TestNG**: TestNG是一个功能强大的Java测试...

    XML学习教程--推荐

    ### XML学习教程知识点总结 #### 一、XML学习进阶1——什么是XML ##### 1. 为什么使用XML? XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,其设计初衷是为了弥补HTML在数据表示上的不足。随着互联网...

    前端开源库-xml-char-classes

    "前端开源库-xml-char-classes" 是一个专门针对这个问题的开源库,它提供了正则表达式,帮助开发者有效地验证和处理XML文档中的字符。 XML字符类主要分为以下几个类别: 1. **可接受字符**:任何Unicode字符,除了...

    testng-xslt-1.1压缩包

    (1) 解压testng-xslt-1.1压缩包: 把saxon-8.7.jar(testng-xslt-1.1\lib)放到在工程目录下创建一个Lib目录; 把testng-results.xsl (testng-xslt-1.1\src\main\resources)放到test-output目录下;

    xml-commons-resolver-1.2.zip

    这个组件是Apache XML Commons项目的一部分,旨在提供一个统一、灵活且可扩展的解决方案,以便在XML应用程序中解决资源(如DTD、XML Schema、XSLT样式表等)的引用和访问。 XML Commons Resolver主要包含以下核心...

    XSLT-Mastering.XML.Transformations

    学习XML的语法和结构有助于更好地理解XSLT如何操作和转换XML文档。 ### 安装Xalan Xalan是Apache软件基金会的一个项目,提供了XSLT和XSL-FO处理器的实现。在进行XSLT的实际操作前,需要安装Xalan或其他支持XSLT的...

    vtd-xml vtd-xml vtd-xml

    VTD-XML是一种高效、灵活且轻量级的XML处理库,由Vivtek Data Systems公司开发。这个库专门设计用于解析、导航和修改XML文档,尤其在大型XML数据处理中表现出色。VTD(Variable Token Descriptor)是该库的核心概念...

    testng-xslt-1.2.rar.zip

    "testng-xslt-1.2.rar.zip"这个文件名暗示了一个结合了TestNG和XSLT的特定版本资源包。这可能是开发者或测试工程师用于生成和格式化TestNG测试结果的工具。XSLT被用来定制TestNG的默认报告,以提供更详细、更具...

    Creating MS Word Document using C#, XML and XSLT-n

    本教程将重点介绍如何利用C#、XML和XSLT技术来高效地生成Word文档。这些技术结合使用,可以实现灵活的数据转换和格式化,尤其适用于批量生成或自动生成文档的场景。 首先,让我们了解这三个关键组件: 1. **C#**:...

    rh-nginx112-nginx-mod-http-xslt-filter-1.12.1-2.el7.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    XML指南--XML指南.rar

    XML(Extensible Markup Language)是一种用于标记数据的语言,它的设计目标是...通过XML指南.chm文件,您可以更深入地学习XML的规范、示例和实践,掌握XML的使用技巧,从而在工作中更好地利用XML进行数据处理和交换。

    《XML》实验任务书----XSLT

    1、给定下面的XML文档内容,根据要求为每个问题设计一个XSLT文件,并在浏览器中进行浏览以观察结果是否为所要求的形式。 2、编写book.xslt文档,要求在book.xml中打印出所有的section元素(包括属性)及其title子...

    XML资料大全--基础 语言 笔记课件

    - W3C官方文档:提供了XML规范的权威指南,包括XML、XPath、XSLT等。 - 在线教程:如W3Schools、MDN Web Docs等,提供互动式的教程和实例。 - 开源库:如Java的JAXB、DOM4J,Python的lxml,JavaScript的xml2js等...

Global site tag (gtag.js) - Google Analytics