1
4
本节将在规范中介绍 XSLT Template Rules 不要将XSLT视为作用于XML。
在中间,XSLT将开始执行语句。如果你有
在执行新模板时,除了上下文现在是匹配的节点外,应用相同的内容。
这些是基础。例如,如果您有这个XSLT程序,那么无论输入是什么,您都会得到
但如果您有这样的输入:
并将其用作变换:
这有用吗? |
2
3
模板处理由XSLT引擎本身驱动,而不是(通常)由代码驱动。这样,它与您提到的过程语言非常不同。如果你有函数式编程方面的背景,那将非常有帮助。
xpath语句与documentnode或任何其他元素匹配。它匹配根节点,然后遍历文档。将文档视为一棵树。在每个元素节点上,它将执行完全相同的语句。XSLT以从左到右的顺序遍历节点(因此,如果根元素有两个子元素,它将在第二个子元素之前命中文档中的第一个子元素)。因为它正在执行上面的select,所以它将前进到该节点的子节点并执行相同的操作。这是一个从左到右的深度优先遍历树。 现在,在XSLT引擎命中的每个元素节点上,它将查找匹配的模板。规则相对简单-它将选择执行最具体的模板。内置模板始终是最不特定的。匹配完整路径的模板非常具体:
仅匹配节点名称的模板不太具体:
如果已定义引擎选择的模板(定义的任何模板都将优先于内置模板使用),则上述默认遍历将停止。它执行模板并停止,除非模板再次开始遍历:
上面的应用模板将重新启动遍历(顺便说一句,不带select属性的应用模板与使用相同) 选择 我希望这有帮助。在这种情况下,图表是最好的方法。 |
3
1
如果您有一些钱可以花在培训上,Ken Holman有一套出色的XML/XSLT/XPATH/XSL-FO培训课程。 http://www.cranesoftwrights.com/training/ptux/ptux-video.htm
XSLT需要以不同的方式看待事物。许多程序员很难调整或理解XSLT,因为他们总是从过程代码的角度来思考问题,而不是以更实用的方式来思考问题。 |
Pjoern · 在XSLT中包装没有属性的节点组 6 年前 |
user2093335 · XSLT:基于现有属性值替换属性值 6 年前 |
Leth · 字符串串联functoid不将映射值返回到目标记录 6 年前 |
shawn · XSLT 3.0在应用模板中使用变量进行动态选择? 6 年前 |
user9238790 · 将XML转换为数据帧 6 年前 |
Vanessa · xsl:当两个节点相等时,显示第一个节点的子节点 6 年前 |
Adi · 并行读取大型XSLT字符串 6 年前 |
Brian Arthur · XSLT从另一个上下文获取信息 6 年前 |