我有以下XMLXSLT样式表复式
<TopLevel>
<data m="R263">
<s ut="263firstrecord" lt="2013-02-16T09:21:40.393" />
<s ut="263secondrecord" lt="2013-02-16T09:21:40.393" />
</data>
<data m="R262">
<s ut="262firstrecord" lt="2013-02-16T09:21:40.393" />
<s ut="262secondrecord" lt="2013-02-16T09:21:40.393" />
</data>
</TopLevel>
我有一些XSLT,做呼叫模板,但它不是正确itterating。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="data">
<xsl:value-of select="@m" />
<xsl:variable name="vYourName" select="@m"/>
<xsl:choose>
<xsl:when test="@m='R262'">
<xsl:call-template name="R262"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="@m='R263'">
<xsl:call-template name="R263"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="R262">
<xsl:for-each select="/TopLevel/data/s">
Column1=<xsl:value-of select="@ut" />
Column2=<xsl:value-of select="@lt" />
</xsl:for-each>
</xsl:template>
<xsl:template name="R263">
<xsl:for-each select="/TopLevel/data/s">
Column1=<xsl:value-of select="@ut" />
Column2=<xsl:value-of select="@lt" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
这给了我8记录在4 (<s> level)
记录。我知道这与我的迭代有关......但我不知道如何解决这个问题。
我也知道了应用的样式表,但我不能揭开这种神秘要么...如果有人可以帮助我XSLT只会在<data>
级别来处理一切从<TopLevel>
到<\TopLevel>
检查m的值并在每个<s>
记录的<s>
级别上应用样式表,我将无法相信。
你能提供预期的结果XML吗?这将帮助我们了解您的原始XSLT是否可以修改以实现您想要的功能。 – ABach 2013-04-09 19:03:46
我实际上只是要从每个元素中获取数值并返回一个插入语句......我知道我可以将它们作为数据集返回......不知道......这是下一个问题......底线对于上面的例子,我期望得到4条记录263firstrecord,263secondrecord,262firstrecord,262secondrecord),每列有2列(column1和column2)。 非常感谢您的回复,我非常喜欢这个xslt。 – user2263069 2013-04-09 20:33:17
您好,请参阅我的解决方案以应用模板逻辑。问候,彼得 – Peter 2013-04-10 08:18:46