-1

我有以下 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 列表,我将在 else 树中更改调用以写入信息。我已经尝试了一些与 xslt 1 一起使用的方法,但我认为这是一个问题,因为它在原始 xml 文件中不存在,但我构建了一个新树,我尝试对其进行排序。

我可以尝试的任何帮助或提示将不胜感激。我现在用撒克逊解析器解析这个。

// 安德烈亚斯

编辑:我想使用排序的 id 列表从标题创建连接。因此,我为连接 1 创建了一个设置,为连接 2 创建了一个设置。我现在遇到的问题是我创建了 2 次连接 1,因为我无法选择不同的 id:s。

4

1 回答 1

0

很抱歉造成混乱。它像我一样工作,但递归使它看起来像 group by 没有工作。

所以问题是递归使它看起来像打印了 3 次一样。

于 2013-02-25T15:17:46.270 回答