ply-templates /> … </xsl:template> <xsl:template match="iNextYes"> <xsl:apply-templates select="./FlowNode" /> </xsl:template>
<xsl:template match="iNextNo"> <xsl:apply-templates select="./FlowNode" /> </xsl:template>
整个递归过程就是靠上面这三个模块(template)来完成的。 第一个template在匹配当前节点中每一个子节点的模板的时候 调用了后面两个template; 而后面两个template又在具体执行 的时候调用了第一个template ,这就相当于一个递归函数。
语法:
要依次匹配当前节点中的每个子节点的模板,应使用该元 素的基本形式 <xsl:apply-templates />。 否则,匹配的节点由 select 参数中 XPath 表达式的值决 定,如 <xsl:apply-templates select="./FlowNode" />
(1)和(2)的作用都是返回由 select 参数给出的表达式的字符串值。 他们的搜索条件相同,所以返回的值也一样。 只不过是使用的场合不同,他们的书写形式也就不一样。
(1) <xsl:value-of select="./iProcess/text()" /> (2) {./iProcess/text()}
这里定义了一些变量,节点的定位就是根据这些变量来调用运算公式的。
root_left //根的左边距=所有叶子的分配宽度(y*10) + 所有叶子的宽度(y*50) + 左边距基本值(10) root_top //根的上边距=上边距基本值(10) objOval //当前对象,是一个object objOval_iProcess //当前对 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
|