第5章使用XSL格式化XML

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章使用XSL格式化XMLXSL(ExtensibleStyleLanguage)由两部分组成:数据转换语言XSLT(XSLTransformations)和数据格式化语言(FormattingLanguage)。XSL格式化语言用于设置XML文档中数据最终在浏览器等显示介质中的显示格式,XSL格式化语言标准还未完全实现。XSL基本知识1、链接XSL到XML要使用XSL样式单来显示XML文档内容,需要按照如下步骤进行:XSL样式单的使用格式如下:?xml:stylesheettype=“text/xsl”href=“URL”?2、XML文档结构树3、第一个XSL样式单事例分析(例5-2)4、在XML文档中使用多个样式单XSL提供了两个元素允许用户在XSL文档中使用外部的样式单:xsl:include和xsl:import。XSL模板?xmlversion=1.0encoding=gb2312?xsl:stylesheetversion=1.0xmlns:xsl=………./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-templatesselect=”学生列表“/”元素,于是开始处理当前节点(根节点)下的“学生列表”子节点。3)将“学生列表”节点与样式单中所有模板进行比较,与第二个模板匹配,于是输出第二个模板中的内容如。4)在输出第二个模板中的内容时,又遇到一个“xsl:apply-templatesselect=学生/”元素,要求对XML文档结构树中当前节点下的所有“学生”节点,按匹配的模板进行输出,于是进一步寻找匹配模板。5)样式单中找到匹配的模板(第三个模板),于是输出表格中的一行单元格数据。xsl:value-of元素用于提取对应节点的内容,如“xsl:value-ofselect=”学号“/”,将会输出当前“学号”节点的内容。6)依次处理完每一个学生节点,在处理完第二个模板的“xsl:apply-templatesselect=”学生“/”元素后,输出该模板的剩余内容,即/table置标。7)处理完第一模板中的“xsl:apply-templatesselect=学生列表/”元素后,输出该模板的剩余内容如下。XML文档结构描述——XPath3.1XPath表达式根节点节点上下文节点元素节点属性节点星号通配符所有节点文本节点父子关系祖先后代关系并列关系1、XPath表达式中的路径(1)绝对路径与相对路径(2)在select属性中直接使用路径选择元素(3)在match属性中使用路径(4)在路径中使用星号(5)在路径中使用“//”2、XPath表达式中的选择关系表达(1)限制元素必须有子元素(2)添加多个限制条件(3)在条件中使用星号(4)限制于元素必须带有给定属性(5)限制元素内容为给定字符串3、XPath表达式中的约束关系表达3.2XPath函数1、节点集函数2、字符串函数3、数值型函数4、布尔型函数XSLT常用控制元素1、循环处理元素xsl:templatematch=学生列表…..xsl:for-eachselect=学生……xsl:value-ofselect=学号/……/xsl:for-each……/xsl:template2、条件选择元素xsl:ifxsl:if元素提供了根据模式来改变输出文档的简单途径。xsl:if的test特性含有选择表达式,用来计算布尔值。如果此表达式为true,即输出xsl:if元素的内容;否则,不输出xsl:if元素的内容。xsl:chooseXSL中不存在xsl:else或xsl:else-if元素。但xsl:choose元素可以提供这一功能。根据几个可能的条件,xsl:choose元素从几个的输出结果中选择一个。xsl:when子元素提供各种条件及其相关的输出模板。xsl:when元素test属性为布尔值的选择表达式。如果多个条件都为真,那么只显示第一个为真的条件。如果xsl:when元素都不为真,那么显示xsl:otherwise子元素的内容。3、排序元素xsl:sort元素作为xsl:apply-templates或xsl:for-each的子元素出现,可以对输出元素按指定的关键字顺序进行排序。xsl:sort元素有以下几个主要属性。select属性:设置排序的关键字。order属性:设置排序次序,“ascending”为升序,“descending”为降序。Data-type属性:设置排序是否按数字或文本进行,“number”为数字,“text”为文本。在缺省情况下,以关键值的字母顺序进行排序。如果在给定的xsl:apply-templates或xsl:for-each元素中,存在一个以上的xsl:sort元素,那么输出内容首先按第一个关键字进行排序,然后按第二个关键字进行排序,依次类推。如果任何元素的比较结果是一样的,那么就按源文档的顺序输出。任务5—实现对学生成绩的条件显示任务6—实现对学生成绩的排序

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功