Xslt
2018-07-10 23:37
246 查看
XSLT的英文标准名称为eXtensible Stylesheet Language Transformation。根据W3C的规范说明书(http://www.w3.org/TR/xslt),最早设计XSLT的用意是帮助XML文档(document)转换为其它文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:XSLT是一种用来转换XML文档结构的语言。
为了使数据便于人们的阅读理解,我们需要将信息显示出来或者打印出来,例如将数据变成一个HTML文件,一个PDF文件,甚至是一段声音;同样,为了使数据适合不同的应用程序,我们必须有能够将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文本文件,一个SQL语句,一个HTTP信息,一定顺序的数据调用等。而XSLT就是我们用来实现这种转换功能的语言。将XML转换为HTML,是目前XSLT最主要的功能。
1.XSLT stylesheets can automate the conversion of the same input into multiple output formats.
2.XSLT一个很大的优势就是可以在任何地方随时在XML数据全局范围内抓取需要的任何数据,不受XML数据结构影响。
3.将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它。这样给你一个XML,一个DTD,就可以开发XSLT,而不用关心后台数据如何实现。比如如果有一天突然觉得要换界面了,那么重新做一个xsl就好了,后台的程序和xml的结构完全不需要修改,如果你用传统的方法,由于数据和显示耦合的太紧密,所有的页面都将重写...
4.将XSLT转化在客戶端运行可以大大减少服务器压力,服务器只需要将XML数据发送到客戶端,XSLT已經保存在本地,从而减小网络流量.
5.可以很好的避免安全性問題,以XSLT转化得到的页面通过查看源代码得到的只有XML数据。
6.能够很好的适应需求的快速变化,不用修改逻辑代码,不用编译,甚至可以直接在线修改,就可以解决比较一般的需求变化。
7.另外,是因为它专门用来处理xml,它处理xml比DOM方便多了,对于目前盛行的Ajax应用来说,尤其有其发挥空间,比较典型的可以参考AJAXSLT
ajaxslt是一个针对Ajax在取得XML资料格式后,利用Javascript动态加入XSL-T(XML Stylesheet Language - Transformation)与及XPath的运用所开发的一套元件。一般上,XMLHttpRequest在传回XML字串后,我们必须花另一个功夫将这些XML数据转换成能够显示的用户界面,这是非常繁琐的工作,而且程序码的重用是一个恶梦。不过,通过ajaxslt,我们可以利用XSLT模版对XML文件进行处理,然后输出一个用户界面,当然我们不必了解ajaxslt是怎样处理XML和XSLT的,只要熟悉XSLT和XPath的原理就可以很轻松地处理XML文件了。
8.一个xslt可以生成N种版面布局,但html就只能通过script来实现.
以下例子:xml转换成HTML
如下是要转换的xml文件howto.xml示例:
示例xslt文件[howto.xsl]
做转换的java代码:
为了使数据便于人们的阅读理解,我们需要将信息显示出来或者打印出来,例如将数据变成一个HTML文件,一个PDF文件,甚至是一段声音;同样,为了使数据适合不同的应用程序,我们必须有能够将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文本文件,一个SQL语句,一个HTTP信息,一定顺序的数据调用等。而XSLT就是我们用来实现这种转换功能的语言。将XML转换为HTML,是目前XSLT最主要的功能。
1.XSLT stylesheets can automate the conversion of the same input into multiple output formats.
2.XSLT一个很大的优势就是可以在任何地方随时在XML数据全局范围内抓取需要的任何数据,不受XML数据结构影响。
3.将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它。这样给你一个XML,一个DTD,就可以开发XSLT,而不用关心后台数据如何实现。比如如果有一天突然觉得要换界面了,那么重新做一个xsl就好了,后台的程序和xml的结构完全不需要修改,如果你用传统的方法,由于数据和显示耦合的太紧密,所有的页面都将重写...
4.将XSLT转化在客戶端运行可以大大减少服务器压力,服务器只需要将XML数据发送到客戶端,XSLT已經保存在本地,从而减小网络流量.
5.可以很好的避免安全性問題,以XSLT转化得到的页面通过查看源代码得到的只有XML数据。
6.能够很好的适应需求的快速变化,不用修改逻辑代码,不用编译,甚至可以直接在线修改,就可以解决比较一般的需求变化。
7.另外,是因为它专门用来处理xml,它处理xml比DOM方便多了,对于目前盛行的Ajax应用来说,尤其有其发挥空间,比较典型的可以参考AJAXSLT
ajaxslt是一个针对Ajax在取得XML资料格式后,利用Javascript动态加入XSL-T(XML Stylesheet Language - Transformation)与及XPath的运用所开发的一套元件。一般上,XMLHttpRequest在传回XML字串后,我们必须花另一个功夫将这些XML数据转换成能够显示的用户界面,这是非常繁琐的工作,而且程序码的重用是一个恶梦。不过,通过ajaxslt,我们可以利用XSLT模版对XML文件进行处理,然后输出一个用户界面,当然我们不必了解ajaxslt是怎样处理XML和XSLT的,只要熟悉XSLT和XPath的原理就可以很轻松地处理XML文件了。
8.一个xslt可以生成N种版面布局,但html就只能通过script来实现.
以下例子:xml转换成HTML
如下是要转换的xml文件howto.xml示例:
<?xml version="1.0"?> <howto> <topic> <title>Java</title> <url>http://outofmemory.cn/code-snippet/tagged/java</url> </topic> <topic> <title>Python</title> <url>http://outofmemory.cn/code-snippet/tagged/python</url> </topic> <topic> <title>Javascript</title> <url>http://outofmemory.cn/code-snippet/tagged/javascript</url> </topic> <topic> <title>VBScript</title> <url>http://outofmemory.cn/code-snippet/tagged/VBScript</url> </topic> </howto>
示例xslt文件[howto.xsl]
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head><title>Real's HowTo</title></head> <body> <table border="1"> <tr> <th>Title</th> <th>URL</th> </tr> <xsl:for-each select="howto/topic"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="url"/></td> </tr> </xsl:for-each> </table> </body></html> </xsl:template> </xsl:stylesheet>
做转换的java代码:
import javax.xml.transform.*; import java.net.*; import java.io.*; public class HowToXSLT { public static void main(String[] args) { try { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer (new javax.xml.transform.stream.StreamSource ("src/howto.xsl")); transformer.transform (new javax.xml.transform.stream.StreamSource ("src/howto.xml"), new javax.xml.transform.stream.StreamResult ( new FileOutputStream("src/howto.html"))); } catch (Exception e) { e.printStackTrace( ); } } }
相关文章推荐
- [导入]在XSLT实现按日期排序
- XSLT实现XML无极限树(精简版)[二] 解决没有递归出节点属性值总和的问题(JS实现)
- 用 XSLT 将 PowerDesign 9.5 的 cdm 文件直接转化为源代码
- 使用XSLT将XML数据转换成HTML
- XSLT 编写要点一(学习笔记)
- XSLT轻松入门第四章:XPath的语法
- 利用XSLT把ADO记录集转换成XML
- 用XML和XSLT进行高级的 Web UI设计
- [导入]xslt例子(Coloring alternate rows和两个Template例子):
- 实例简析XPath串函数和XSLT(收藏)
- XSLT轻松入门第二章:XSLT的实例
- 使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML数据
- XSLT中用normalize-space函数来清除元素的前后空格
- xslt学习简单笔记
- XSLT的元素语法
- Treating HTML like XML using HtmlAgilityPack, and doing it inside of an XSLT too [转载]
- Xslt格式化数字[zt]
- XSL相关技术介绍-XSLT, XPath, XSL
- 在服务器端的XSLT过程中的编码问题
- XSLT - 编辑XML