2012-04-27 11 views
1

データビューWebパーツから返される行は24行あります。番号型のNoExperienceという列があります。一部の行にはNoExperienceの値があり、一部の行にはNoExperienceの値が含まれていません。 NoExperience列の数値は、その列の非空白値の合計数を示す必要があります。 COUNTA関数をExcelで並べ替えます。番号を数えます。 XSLT 1.0の空ではないノードセット

xsl 1.0を使用しています。

助けが必要ですか?以下は私のコードです。これは常に24を返します。NoExperience列には10個の空でない値があります。私はその番号を見つける必要があります。 XPATHビルダーで

<xsl:value-of select="count(/dsQueryResponse/Rows/Row/@NoExperience)" /> 

@NoExperienceの値は次のように示す: 。 ; ; ; ; ; ; 6; 6; ; 6; ; ; ; 6; ; 7; 7; ; ; 9; 9; 9; 9;

空でない値が10個あります。

答えて

5

おそらく「空」の場合は、<Row NoExperience="">ではなく、属性がすべてでそこにいるではないが持っているので、非空の文字列値が真の述語として機能するよう、あなたは

<xsl:value-of select="count(/dsQueryResponse/Rows/Row/@NoExperience[string(.)])" /> 

ようなものが必要。

+0

ありがとうございました。出来た。 :) – Nemo

+0

私にも少し説明をお願いしますか?再度、感謝します。 – Nemo

+1

元のNoExperience属性ノードの数をカウントしたものの、NoExperience = ""はそのようにカウントされたモードです。 '@NoExperience [...]'は、 '[....]'が真であるノードをフィルタリングします(そしてそれを数えます)。文字列(。)は、ブール値のコンテキスト内の属性の文字列値を返します。空文字列はfalseで、空文字列はtrueです。NoExperience = "123"は真のフィルタを取得し、NoExperience = ""はfalseフィルタを取得します。 –

関連する問題