XSL学习笔记4 XSLT模式匹配的语法
模板规则通过使用模式来匹配文档树的节点。模式指定一组条件,用于选择要处理的节点。
模式匹配的语法不光可以在<xsl:template>元素的match属性中使用,还可以在<xsl:apply-templates>、<xsl:value-of>、<xsl:for-each>、<xsl:copy-of>、<xsl:sort>、<xsl:variable>和<xsl:param>元素的select属性中使用。
下面列出常用的模式匹配的用法:
1、匹配根节点
例如:<xsl:template match="/">,表示匹配根节点。
2、匹配元素节点
例如:<xsl:template match="employees">,表示匹配employees元素节点。
3、使用通配符
例如:<xsl:template match="*">,表示匹配任何元素。
4、使用@匹配属性
用@加上数姓名,可以用于匹配属性节点。
例如:<xsl:template match="@mode">,表示匹配mode属性节点。不过要注意的是,XSLT处理器在遍历节点的树状结构时,并不处理属性节点。如果要让处理器处理属性节点,必须显式调用<xsl:apply-templates>元素,并使用select属性选择属性节点。
还可以将@与星号(*)一起使用,例如:<xsl:template match="@*">,表示匹配任意的属性节点。
5、使用斜杠(/)匹配子节点
例如:<xsl:template match="employees/employee">,表示匹配employees元素节点下的任意的employee子节点。
6、使用双斜杠(//)匹配后代节点
有时候,希望对某一类元素节点进行处理,而不管该节点在树状结构中所处的位置,就可以使用双斜杠(//)来匹配节点。例如:<xsl:template match="//name">,表示匹配根节点下任意的name元素节点,而不管该节点所处的位置。例如:<xsl:template match="employees//name">,表示匹配employees元素节点下的任意的name元素节点。
7、使用或操作符(|)
使用或操作符(|)来可选择地匹配多个节点。例如:<xsl:template match="name|age">,表示匹配任意的name或age元素节点。
8、使用[]操作符
可以在[]中指定布尔表达式,用于在节点集中更精确地匹配某一个节点。
例如:如果只想匹配第一个employee元素,可以这样写:<xsl:template match="employee[1]">,表示匹配第一个employee子元素节点。这和上面的写法是等价的:
<xsl:template match="employee[position()=1]">
position()是一个函数调用,返回节点在上下文中的当前位置,然后判断该位置是否等于1.
9、使用node()匹配节点
node()表示匹配除属性节点和根节点之外的其他任何节点。
例如:<xsl:template match="node()">.
10、使用text()匹配文本节点
text()表示匹配任意的文本节点,例如:<xsl:template match="text()">。
11、使用processing-instruction()匹配处理指令
processing-instruction()表示匹配任的处理指令节点。
例如:<xsl:tempate match="processing-instruction()">。processing-instruction()还可以带一个参数,用于指定处理指令目标的名字,这样,只有和这个名字相同的处理指令才能被匹配。
12、使用comment()匹配注释
comment()表示匹配任意的注释节点,例如:<xsl:template match="comment()">。
13、使用id()进行匹配
一个ID类型的属性唯一标识了XML文档中的一个元素。
例如:<xsl:template match="id('E-2001320001')">表示匹配拥有ID类型属性并且其值等于E-2001320001的元素。要注意的是,要让这种方式能够工作,必须在源XML文档的DTD中声明ID类型的属性,可以是内部的或外部的DTD,如果源文档那个没有DTD,则id()函数就不能正常工作。
分享到:
相关推荐
学习XSL的过程中,理解XSLT的模板匹配机制至关重要。你需要掌握如何定义模板,以及`<xsl:apply-templates>`和`<xsl:copy-of>`元素的使用,它们分别用于应用模板和复制节点。此外,XPath的熟练运用也是关键,包括节点...
2. **XSL学习.doc**:可能是作者编写的详细教程或笔记,涵盖XSL的高级特性,如XPath表达式、模式匹配、导入导出、命名空间、样式表组合等。此外,文档可能还包含了一些实用技巧和解决常见问题的方法。 3. **XSL速查...
XML,全称Extensible Markup Language,可扩展标记语言,是一种用于标记数据的结构化语言,...通过这些学习资料,你将能够深入理解XML的各个方面,从基础语法到高级用法,从而在实际工作中更有效地处理和利用XML数据。
本压缩包包含了关于XML的学习笔记、课件和实例,旨在帮助初学者全面理解和掌握XML的核心概念与应用。 XML的基础知识包括以下几个关键点: 1. **XML的基本结构**:XML文档由一系列元素构成,每个元素由起始标签(如...
XSLT使用模板和模式来控制转换过程。XSL-FO(Formatting Objects)是XSL的一部分,用于定义文档的布局和格式。 XPath是XML路径语言,它允许你在XML文档中查找和导航元素、属性和值。XPath表达式可以选取XML文档中的...
由于提供的文件信息中包含了大量的XML学习资料,且内容比较丰富,我们将逐一详细解释这些内容所涵盖的知识点。 **XML简介** XML是Extensible Markup Language(可扩展标记语言)的缩写,它是一种用于标记电子文件...
4. **XML笔记**:学习XML时,笔记可以帮助整理概念和技巧。可能包括如何创建有效的XML文档、命名规则、命名空间、DOM(Document Object Model)解析、SAX(Simple API for XML)事件驱动解析、XML Schema(替代DTD的...
- XSLT(XSL Transformations):用于转换XML文档,将其转换成其他XML或HTML文档。 5. XML在实际应用中的角色: - 数据交换:XML常用于不同系统间的接口数据交换,因为它具有良好的可读性和可解析性。 - 配置...