1

私はさまざまなノードの要素の合計 (合計) 値を取得しようとしてきましたが、1 週間かけて例を次々といじりましたが、解決策に一歩も近づいていません。

私が得るのは、合計ではなく、文字列にリストされたさまざまな値だけです。

値を取得するために使用される選択は次のとおりです。

<xsl:for-each select="//workgroups/workgroup/agentstatus/status">
  <xsl:if test="key='Available, No ACD'">
    <xsl:value-of select="sum(value)"/>
  </xsl:if>
</xsl:for-each>

これは111期待値ではなく戻ります3

ここで何が間違っていますか?

これは xml version="1.0" encoding='utf-8' です

4

2 に答える 2

1

コードはすべてのステータス要素を選択し、目的のキー値を持つそれぞれについて sum(value) を出力します。statusしたがって、サマリーは でヒットごとに個別に実行されxsl:ifます。

以下を使用する必要があります。

<xsl:value-of 
     select="sum(//workgroups/workgroup/agentstatus
                   /status[key/text()='Available, No ACD']/value)"/>
于 2012-10-28T00:34:58.473 に答える
1

これを試して:

<xsl:value-of select="sum(//workgroups/workgroup/agentstatus/status[./key/text()='Available, No ACD']/value)" />

ループは XSLT の動作によって処理されるため、for each または if ステートメントを指定する必要はありません。すべて xpath ステートメントによって暗示されます。これがうまくいかない場合は、実行している XML のコピーを投稿してください。必要に応じて xpath を更新します。

于 2012-10-28T00:33:17.267 に答える