-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 リストは必要ありません。xslt 1 で使用されているいくつかの方法を試してみましたが、元の xml ファイルには含まれていないため、これは問題だと思いますが、新しいツリーを作成して、個別に並べ替えようとしています。

私が試すことができる助けやヒントをいただければ幸いです。これをsaxonパーサーで解析しています。

//アンドレアス

編集: ソートされた ID リストを使用して、ヘッダーから接続を作成したいと考えています。そのため、接続 1 用と接続 2 用のセットアップを作成します。現在の問題は、個別の ID を選択できないため、接続 1 を 2 回作成することです。

4

1 に答える 1

0

混乱して申し訳ありません。それは私が持っていたように機能しましたが、再帰によりグループbyが機能しなかったように見えました。

したがって、問題は、再帰により、同じ3回印刷されたように見えることでした。

于 2013-02-25T15:17:46.270 に答える