-1
我有以下xml樹。xsl在創建的xml樹上選擇不同的樹
<columns>
<column>
<name>Version</name>
<type>string</type>
<multiquery useconnectionid="1" get="Version">SELECT ...</multiquery>
<columns>
<column>
<name>Success</name>
<type>number</type>
<query useconnectionid="2" param="version">SELECT ...</query>
</column>
<column>
<name>Failure</name>
<type>number</type>
<query useconnectionid="1" param="version">SELECT ...</query>
</column>
</columns>
</column>
</columns>
及以下XSLT模板:
<xsl:template match="column" mode="findid">
<xsl:param name="header" required="yes" />
<xsl:param name="dbid" required="no" />
<xsl:variable name="dbids">
<xsl:if test="$dbid">
<xsl:value-of select="$dbid" />
</xsl:if>
<xsl:for-each select="multiquery">
<id><xsl:value-of select="@useconnectionid" /></id>
</xsl:for-each>
<xsl:for-each select="query">
<id><xsl:value-of select="@useconnectionid" /></id>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="distinct-values($dbids/id)">
<xsl:value-of select="." />
</xsl:for-each>
<xsl:choose>
<xsl:when test="columns/column">
<xsl:apply-templates select="columns/column" mode="findid">
<xsl:with-param name="header" select="$header" />
<xsl:with-param name="dbid" select="$dbids" />
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
出於某種原因,我不能讓創建的ID樹可以選擇不同的。它總是繪製121,我只希望它繪製12.我不想要一個唯一的ID列表,我會改變其他樹中的調用來寫信息。我曾嘗試過一些與xslt 1一起使用的方法,但我認爲這是一個問題,因爲它不在原始xml文件中,但是我構建了一個新的樹,我嘗試對其進行排序。
任何幫助或暗示我可以嘗試將不勝感激。我現在用撒克遜語解析器解析這個。
//安德烈亞斯
編輯: 我想使用排序ID列表創建從標題連接。所以我創建了連接1和連接2的設置。我現在的問題是創建連接1 2次,因爲我無法選擇不同的ID:s。
請考慮發佈您希望爲您發佈的輸入示例創建的輸出示例,然後我們可以建議實現該示例的XSLT 2.0方法。如果您希望我們修復已發佈的XSLT,請提供足夠完整的示例來運行您的代碼。目前使用必需的參數'頭部',但沒有應用模板和傳入參數值的示例,很難說出你想要發生什麼。 – 2013-02-25 14:47:21
對不起,標題的格式不正確,但我不能將它作爲代碼添加到我的原始消息或此評論中。 \t \t \t <連接類型= 「數據庫」 ID = 「1」> \t \t \t 192.168.0.100 \t \t \t 根 \t \t \t 通 \t \t \t TEST1 \t \t \t \t <連接類型= 「數據庫」 ID = 「2」> \t \t \t 192.168.0。200 \t \t \t 用戶 \t \t \t 通 \t \t \t test2的 \t \t \t連接> –
Andreas
2013-02-25 14:58:41
所以,你要組使用@useconnectionid查詢元素? – 2013-02-25 15:09:42