我想处理有哪几种不同的状态组像XSLT和临时文件
<root>
<childgroup>16</childgroup>
<setstate>init</setstate>
<child1>...</child1>
<child2>...</child2>
<setstate>process<setstate>
<child2>...</child2>
<child3>...</child3>
.....
<childgroup>17</childgroup>
...
一个XML文件我需要的其实是得到类似
<childgroup no="16">
<state statename="init">
<child1>...</child1>
<child2>...</child2>
</state>
<state statename="process">
<child2>...</child2>
<child3>...</child3>
</state>
</childgroup>
<childgroup no="17">
...
我已经做了简单的一部分并将“chgrpno”属性和stateid属性添加到所有子项(它使所有元素的副本,但是子组和副本的状态,将属性添加到这两个元素中)
<xsl:template match="/">
<xsl:apply-templates mode="numb"/>
</xsl:template>
这样做的结果是,所有的孩子都有属性,所以我可以在下一关重新组合它们,并且州有数字,所以我以后可以做同样的事情。但是,试图跟随M.Kay的例子有“临时文件”当我尝试做
<xsl:variable name="nmb">
<xsl:apply-templates mode="numb"/>
</xsl:variable>
<xsl:template match="/">
<xsl:copy-of select="$nmb"/>
</xsl:template>
那么它只是返回原来的我,我在第一遍的所有变化都没有了。那么我在这里做错了什么?
我明确地使用了XSLT 1.0,而不是XSLT 2.0。
(编辑:当然我命名变量,忘记复制它在这里)。
问得好,+1。查看我的答案,了解XSLT 1.0中必需的RTF转换为临时树的解释。此外,还提供了两遍XSLT 1.0处理的完整代码示例。 –