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 文档中的各个组成部分 包括 元素 属性 和文本等,