- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5. XSLT (eXtensible Stylesheet Language Transformations) XSLT 中的字母“T”表示“转换”,它是 XSL规范中的一部分。可用于对 XML 树型数据进行结构重组转换的有力工具。可以根据指定的转换规则将一个 XML 文档树或者其中的部分内容转换为另一种文档树形式。 XSLT 所提供的转换功能非常有效,并不仅仅局限于结构上的重组,准确的说,可以将 XML 文档转换为任何形式,包括 XML、HTML 和普通文本,以致于很多人使用 XSL 作为一种在浏览器中显示 XML 数据的工具,也就是利用这种转换功能,将 XML 文档转换为 HTML(通常需要增加一些 HTML 中的有关显示的标记),然后在浏览器中进行显示。XSLT 的功能要比 CSS 强得多。 5.1 XSLT 简介 XSLT 语言是一种声明性(Declarative)的语言,即 XSLT 程序本身只是包含了一些转换规则的 XML 文档。而这些规则可以被递归地应用到转换过程中。 XSLT 处理程序(或称之为执行引擎)将首先确定 XSLT 规则,然后根据规则的匹配条件(通过 XPath 表达式指定)、以及优先顺序完成相应的转换操作。 XSLT本身也是一个 XML 文档,所以它也必须严格遵守 XML 规范。其根元素的命名空间为:/1999/XSL/ Transform。 5.1.1 XSLT 的工作原理 在进行 XSLT 的转换任务时,通常需要两个输入文档,一个是包含源数据的 XML 文档,一个是包含转换任务规则的 XSLT 文档; 由 XML 解析器对这两个文档进行解析,将包含源数据的 XML 文档转换为所对应的文档树结构,将 xslt (xsl) 文档中定义的处理模块看作是一系列的转换规则。 由 XSLT 引擎调用这些规则,对文档树进行遍历,分别处理其中指定的数据节点,将其转换为所需的结果集,并序列化为结果文档。 5.1.2 XSLT 的一个简单示例 hello.xml + hello.xslt XSLT 并不是一种专门用于将 XML 转换为 HTML 的工具,它的目的是为半结构化数据(树型模型)的转换、查询提供一种通用的实现机制,其输出结果并不仅局限于 HTML,可以是任何所需的文本格式(比如 XML)。 hello2.xml + hello2.xslt 5.2 XSLT 中模板的创建以及内置模板的使用 模板是 XSLT 转换工作的具体规则,所有的转换任务是通过一系列的模板体现出来的。因此,如何声明和调用模板,是 XSLT 转换任务的关键。 在 XSLT 文档中通常至少包含一个模板,即 xsl:template match=“/”,该模板用于处理文档节点(Document Node),相当于 Java 中的“main(...)”函数。 5.2.1 XSLT 中模板的声明和调用 模板在很多方面都与函数非常类似。在使用上,必须首先声明(可以指定模板的名称、参数、返回类型等等),然后在合适的地方显式地调用该模板(在遍历文档树节点的过程中、或者直接调用),才能够执行相应的转换规则。 模板的声明 完整的模板声明语法 : 1. 模板的匹配路径属性 match match 属性的取值涉及到模板的调用。 在 XSLT 中,模板的调用分为两种方式: match 属性的示例 hello2.xslt 2. 模板的名称属性 name 前面的模板 xsl:template match=“/” 和 xsl:template match=“message”,它们都没有具体的名称,因此将其称为无名模板。 这些模板之所以可以没有名称,是因为它们的调用是在遍历文档树的过程中自动进行的,根本不需要名称。 命名模板的示例 也可以使用 name 属性为模板指定一个名称,使其成为命名模板 。 3. 模板的模式属性 mode 模板的 mode 属性可用于对模板进行进一步的标识。 4. 模板的优先级属性 priority priority属性是用来表示模板的优先级。 5. 模板的返回类型属性 as 模板返回类型属性 as 的取值,表示该模板应该返回的数据类型。 模板的调用 1. 在遍历(广度优先遍历)的过程中匹配调用。 2. 通过名称直接调用。 1. 使用 xsl:apply-templates 在广度优先、逐层向下的遍历过程中调用模板 select 属性 xsl:apply-templates/ 的作用就是指定继续遍历当前节点的所有子节点(以便根据实际路径和模板的match属性取值调用对应的模板),而 select 属性(取值为一个 XPath 表达式)允许指定仅遍历当前节点的哪些子节点(
您可能关注的文档
最近下载
- 机器人常用手册_epx系列epx1250使用说明书.pdf VIP
- 平行线分线段成比例定理.ppt VIP
- 《临床试验生物样本伦理管理指南》.pdf
- 妊娠期间孕妇心理护理.pptx VIP
- 2025山东威海热电集团有限公司招聘37人考试备考题库及答案解析.docx VIP
- 2025山东威海热电集团有限公司招聘37人笔试参考题库附答案解析.docx VIP
- 2025山东威海热电集团有限公司招聘37人笔试备考试题及答案解析.docx VIP
- 2025山东威海热电集团有限公司招聘37人笔试模拟试题及答案解析.docx VIP
- 伤口造口失禁专科护士.docx VIP
- 伤口造口专科护士试题 造口试题 .pdf VIP
文档评论(0)