1

xsl:for-each-groupを使用してグループ化する必要のあるxmlファイルがあります。すべて正常に動作しますが、問題は、末尾に空白がある要素(たとえば<word>test </word> and <word>test</word>)がある場合に発生しますが、これらを1つのグループと見なす必要があります。

サンプルのxmlファイルは次のとおりです。

<u>
  <s>
    <w>this </w>
    <w>is </w>
    <w>a </w>
    <w>test </w>
  </s>
  <s>
    <w>this</w>
    <w>is</w>
    <w>a</w>
    <w>test</w>
  </s>
<u>

これがxsltコードです

<xsl:for-each-group select="bncDoc/stext/div/u/s" group-by="w" >
  <tr>  
    <td style="text-align: center;">
      <xsl:value-of select="current-grouping-key()"/>
    </td>
    <td>
      <xsl:value-of select="count(current-group())"/>
    </td>
  </tr>
</xsl:for-each-group>

これに対する回避策はありますか?

4

2 に答える 2

3
<xsl:for-each-group select="bncDoc/stext/div/u/s/w" group-by="normalize-space()">
   <!-- ... -->
</xsl:for-each-group>
于 2011-12-08T18:35:27.863 に答える
1

OK、答えが見つかりました:

次のようにnormailize-space()を使用する必要があります。

    <xsl:for-each-group select="bncDoc/stext/div/u/s/w" group-by="normalize-space((text())">
        .
        .
        .
    </xsl:for-each-group>
于 2011-12-08T22:11:29.410 に答える