第5章使用XSL格式化XML.pptVIP

  • 2
  • 0
  • 约3.38千字
  • 约 22页
  • 2016-12-03 发布于重庆
  • 举报
第5章使用XSL格式化XML

第5章 使用XSL格式化XML XSL(Extensible Style Language)由两部分组成:数据转换语言XSLT(XSL Transformations)和数据格式化语言(Formatting Language)。 XSL格式化语言用于设置XML文档中数据最终在浏览器等显示介质中的显示格式,XSL格式化语言标准还未完全实现。 XSL 基本知识 1、链接XSL到XML 要使用XSL样式单来显示XML文档内容,需要按照如下步骤进行: XSL样式单的使用格式如下: ?xml:stylesheet type=“text/xsl” href=“URL”? 2、XML文档结构树 3、第一个XSL样式单 事例分析(例5-2 ) 4、在XML文档中使用多个样式单 XSL提供了两个元素允许用户在XSL文档中使用外部的样式单:xsl:include和xsl:import。 XSL模板 ?xml version=1.0 encoding=gb2312? xsl:stylesheet version=1.0 xmlns:xsl=/1999/XSL/Transform ………. /xsl:stylesheet 1、 模板的定义元素 xsl:template元素 这些规则将特定的输出与特定的输入相关联,实现数据的转换。 每个xsl:template元素都有一个match属性,用来指定要将此模板规则应用于输入文档的哪个节点。 使用的两个原则: (1)XML文件树中没有所对应的节点,将不会被输出。 (2)必须由XML的根节点开始对应。 2. 关于XSL样式单中的HTML置标 XSL样式单的输出结果将被递交给应用程序,典型的应用程序就是浏览器。 在XSL样式单中元素的内容可以使用HTML置标,因为该置标是递交给浏览器,其中的置标的具体意义由浏览器去决定。在XSL中使用HTML置标时,唯一的要求就是置标必须使用结束置标。 注意: 在HTML文件中我们可以只使用br置标来处理换行,不需要置标结束/br,因为XSL也是一个规范的XML文档,所以要按照XML的标准,在br中添加了一个“/”将置标关闭,而且,XML中的标记是要区分大小写的,否则,浏览器将无法正确识别输出的结果。 (3) xsl:apply-templates元素 此元素通常放在输出模板中,该元素可以有一个select属性,用来指定要处理的节点集。如果省略,处理引擎将处理元素的子节点。处理引擎在处理子节点时,将会把节点的子节点依次与样式单中的模板进行比较,与子节点匹配的模板中的输出将会被放到xsl:apply-templates元素所在位置。 xsl:apply-templates元素的使用实现了模板的递归引用,例如ch6-1.xsl 处理过程分析: 1)将根节点与样式单中的所有模板进行比较,与第一个模板匹配,于是开始输出模板中的以下内容: html head title 学生信息列表/title /head body 2)在输出第一个模板内容时遇到“xsl:apply-templates select=”学生列表“/”元素,于是开始处理当前节点(根节点)下的“学生列表”子节点。 3)将“学生列表”节点与样式单中所有模板进行比较,与第二个模板匹配,于是输出第二个模板中的内容如。 4)在输出第二个模板中的内容时,又遇到一个“xsl:apply-templates select=学生/”元素,要求对XML文档结构树中当前节点下的所有“学生”节点,按匹配的模板进行输出,于是进一步寻找匹配模板。 5)样式单中找到匹配的模板(第三个模板),于是输出表格中的一行单元格数据。xsl:value-of元素用于提取对应节点的内容,如“xsl:value-of select=”学号“/”,将会输出当前“学号”节点的内容。 6)依次处理完每一个学生节点,在处理完第二个模板的“xsl:apply-templates select=”学生“/”元素后,输出该模板的剩余内容,即/table置标 。 7)处理完第一模板中的“xsl:apply-templates select=学生列表/”元素后,输出该模板的剩余内容如下。 XML文档结构描述——XPath 3.1 XPath表达式 根节点 节 点 上下文节点 元素节点 属性节点 星号通配符 所有节点 文本节点 父子关系 祖先后代关系 并列关系 1、X

文档评论(0)

1亿VIP精品文档

相关文档