[NextPagexml简介]
xml简介
网上关于XML的介绍和教程是很多的。本节的目的是介绍XML一些最为重要的东西,使您对其有个大概的快速的了解,以便进行相关内容的学习(比如XSLT,通过其他语言或工具读取XML数据),或对XML本身进行更深入的研究。这里假定您对 HTML/XHTML 有基本的了解。
什么是 XML?
XML 与 HTML 的主要差异
XML 的语法
XML 的语法规则很简单,且很有逻辑。这些规则很容易学习,也很容易使用。
下面是一些正确的xml代码片断和典型错误对照:
XML 树结构
XML 文档是一种树结构,它从“根部”开始,然后扩展到“枝叶”。XML 文档必须包含根元素。该元素是所有其他元素的父元素。
XML使用的是一种简单的可具有自我描述性的语法。
比如这是一个书籍信息结构图:
上图可用如下XML文档表示:
[NextPagexslt概述]
xslt概述
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。XSLT 指 XSL 转换。万维网联盟开始发展 XSL 的起因是由于对基于 XML 的样式表语言的需求。以下将学习如何使用 XSLT 将 XML 文档转换为其他文档,比如 XHTML;如何在SF标签里使用xslt元素使模板按您需要的格式显示,或者在外部数据库读取你需要的数据。
xslt文档声明
根据 W3C 的 XSLT 标准,声明 XSL 样式表的正确方法是:
或者:
这两种方法是同义的,均可被使用。
如需访问 XSLT 的元素、属性以及特性,我们必须在文档顶端声明 XSLT 命名空间。
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向了官方的 W3C XSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。
[NextPageSiteFactory™标签制作常用xslt元素简介,<xsl:value-of>]
SiteFactory™标签制作常用xslt元素简介
<xsl:template> 元素
XSL 文档由一个或多套被称为模板(template)的规则组成。每个模板含有当某个指定的节点被匹配时所应用的规则。match 属性用于关联 XML 元素和模板。match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(比如,match="/" 定义整个文档)。<xsl:template> 元素内部的内容定义了写到输出结果的 HTML 代码。
<xsl:value-of> 元素
<xsl:value-of> 用于将选定节点的值作为文本插入
代码格式:
select为必选属性。用于指定数据的位置或者内容。
disable-output-escaping属性默认值为 "no"。如果值为 "yes",<xsl:value-of> 元素生成的文本节点在输出时将不进行任何转义。例如, 以下指令生成单个字符 "<":
以下 XSLT 文件从 <person> 元素以及 <given-name> 和 <family-name> 子元素中,创建 <p> 元素。<p> 元素将包含当前节点第一个 <given-name> 子元素的字符串值,后跟空格和当前节点第一个 <family-name> 子元素的字符串值 XML文件:
XSLT文件:
以下是处理结果:
[NextPagexslt元素简介-<xsl:for-each>]
<xsl:for-each> 元素
<xsl:for-each> 元素可用于选取指定的节点集中的每个 XML 元素对其应用相同的模板
代码格式:
应用示例:输出包含 <BODY> 和 <TABLE> 元素的顶级 HTML 元素。该表包含每个用户的重复行。该 XSLT 文件还使用模板创建姓名、地址和电话源元素的 <TD> 元素。
XML文件:
XSLT文件:
输出结果:
[NextPagexslt元素简介-<xsl:if>]
<xsl:if> 元素
<xsl:if>显示符合一定条件的内容并对其应用模板 代码格式:
应用示例: XML 文件
XSLT 文件
处理结果
[NextPagexslt元素简介-<xsl:choose>]
<xsl:choose>, <xsl:when>, <xsl:otherwise> 元素
XSLT <xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试显示符合一定条件的内容并对其应用模板。将按照从上到下的顺序测试 <xsl:choose> 元素的 <xsl:when> 子级,直到其中一个元素上的 test 属性准确地说明源数据中的条件,或直到遇到 <xsl:otherwise> 元素。在选择了 <xsl:when> 或 <xsl:otherwise> 元素之后,将退出 <xsl:choose> 块。不需要明确的中断或退出语句。对于简单条件测试,请使用 <xsl:if> 元素。 代码格式:
XML 文件
XSLT 文件
处理结果
[NextPagexslt函数简介-format-number]
format-number 函数
将数字转换为字符串。转换的结果是格式化第一个参数 (number) 中指定的数字,使用第二个参数 (string) 中指定的格式,应用第三个可选参数 (string) 中命名的十进制格式中定义的规则。如果省略了第三个参数,即十进制格式名称,则使用默认的十进制格式。 代码格式:
第一个参数指定“输入值”。例如数字 5351
第二个参数指定“格式模式”。例如字符串“###.###,00”
第三个参数是可选的“十进制格式名称”。此参数允许在格式模式字符串中使用任意字符;字符分配给 <xsl:decimal-format> 元素中的某个角色。常用的十进制格式名称 european 用于颠倒逗号和句点的默认角色。
在格式模式中支持的字符如下:“.”、“,”、“#”、“%”、“0”和 Unicode 千分比字符 (#x2030)。“#”字符用于说明整数。“.”和“,”字符用于说明标点符号的位置和类型。“0”字符用于将 0 放在“.”字符的前面和后面,如果该位置将通过其他方式显示无数字,例如 00.3 或 3.00。在截断小数点右侧的位数时,数字将舍入。小数点左侧的位数从不会被截断。
输入值和格式模式字符串必须同时存在,否则将出现错误。如果输入值无法使用 number() 函数中的规则强迫为数字,format-number 函数将返回 NaN。如果格式模式字符串不是有效的模式字符串,函数将返回输入值,不作任何更改。
以下函数调用返回“5,351”:
以下函数调用返回“5351.00”:
以下函数调用返回“53.5100”:
以下函数调用返回“0053.5100”:
以下函数调用返回“0053.51”:
以下函数调用返回“53.6”:
后记:
网上的教程有的说 “XSLT 远比 CSS 更加完善”,“XSLT是XML的样式表”,小羊是不认同的。
XSLT更多地是在定义显示的结构,而不是CSS所能定义的样式(尺寸,颜色,边框,背景,距离等)。按照”样式和结构分离“的原则,在XSLT中内联大量的CSS定义,更不是一种明智之举。
本文参考:
http://msdn.microsoft.com/zh-cn/library/ms256058(VS.80).aspx
http://www.w3school.com.cn