我有以下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