java-web 之 第三讲 xml 文件之 XSLT

XSL

ExTensible Stylesheet  Language -- 可扩展样式表语言 用于将 XML 文件转换为另外的文档(html 等),以及定义转换后文档显示的外观。

实际上包含了三种语言: XSL转换(XSL Transformations XSLT),XML路径语言(XPath),和 XSL格式化对象:XSL-FO
XSLT: 将一个 xml 文档转换成为其他的文档类型   ***核心部分
XPath:识别 选择 匹配xml文档中的各个组成部分,包括元素  属性 文本等       **比较重要
XSL-FO:用于显示,可以将XML 转换为 PDF

   1.1  XSL 概述

	  xml 信息主要用于传递数据并对数据进行表示,而要显示 xml 数据 就需要给xml 文档添加样式信息,一种是使用 css  另一种就是使用 XSLT
		XSLT 比 CSS 复杂的多,功能也更为强大,XSLT可以对数据进行计算,整理和排序。
		例如:<?xml version="1.0" encoding="GB2312"?>
			<?xml-stylesheet type="text/xsl" href="welcome.xsl"?>   <!-- 表示该xml文档关联了一个 XSLT 样式表文档 浏览器处理时会自动转换 -->
			<欢迎词>
				<标题>你好我是标题</标题>
				<内容>我是内容</内容>
			</欢迎词>
 
		<?xml version="1.0" encoding="GB2312"?>
<!-- XSLT文档的根元素 有两个必须的属性: version 和 xmlns:xsl  这里的version 是 XSLT 的版本  xsl为空间前缀,当然不是必须
这里的根元素 xsl:stylesheet 还有另外一个可供选择的元素为 <xsl:transform>
 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
	<xsl:template match="/">	<!-- 根节点 -->
		<html>
			<xsl:apply-templates/>
		</html>
	</xsl:template>
	
	<xsl:template match="欢迎词">
		<head><title>
			<xsl:value-of select="标题"/>
		</title></head>
		<body>
			<xsl:value-of select="内容"/>
		</body>
		
	</xsl:template>
</xsl:stylesheet>
 
上面的例子在浏览器中测试的结果为 :
				
 
		

	XSLT 构造的XML 有7种类型的节点:
	1:根节点  2:元素节点  3:文本节点    4:属性节点:附属于元素节点  5:名称空间节点   6:处理指令节点  7:注释节点
 

1.2  Xalan 处理器

	    Apache XML 工程下的一个子工程,实现了 W3C XSLT 1.0 和 XPath 1.0 规范,是一个开放源代码的 XSLT 处理器,提供了 java 和 c++ 版本
		Xalan 处理器的运行类是 org.apache.xalan.xslt.Process
		命令格式为:
			上述命令的意思是:将 welcome.xsl 样式表文档应用到 welcome.xml 中并将结果输出到 welcome.out 中
 

1.3  模板规则

		XSLT 样式表由 一组模板规则(template rules)组成 
		模板包含了两个部分:
			模式:pattern  用于在原文档树中匹配节点
			模板:template	定义节点的处理规则 
 

1.4 <xsl:apply-templates> 元素

		用于告诉处理器处理当前节点的所有子节点
			如果下面有子节点 需要添加  <xsl:apply-templates select="name"/> name值为子节点的key

1.5 <xsl:value-of> 元素

<xsl:value-of> 用于在结果树中创建一个文本节点

2:XPath 语言

2.1 Xpath 上下文

		主要用于识别,选择,匹配XML 文档中的各个组成部分 包括 元素 属性 和文本等,

          2.2 核心类库
 
 
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值