0

.NET の XSLT で Muenchian グループ化を使用して、インジケーター要素を日付別にグループ化しています。

XML と XSLT のスニペット:

<financials>
  <indicator>
    <date>2010</date>
    <labeltype>2</labeltype>
  </indicator>
  <indicator>
    <date>2009</date>
    <labeltype>2</labeltype>
  </indicator>
  <indicator>
    <date>2008</date>
    <labeltype>2</labeltype>
  </indicator>
  ...
</financials>

<xsl:key name="financialsByDate" match="indicator" use="date" />
<xsl:template match="financials">
    <xsl:for-each select="indicator[generate-id(.) = generate-id(key('financialsByDate', date)[1])]">
      <financial>
         ...
      </financial>
    </xsl:for-each>
  </xsl:template>

このコードは、テスト用に抽出した小さな XML ドキュメントでは問題なく動作しますが、より多くの要素を含む元の XML/XSLT ではまったく動作しません。

テキスト「date」を「foobar」に変更すると、それが機能するのは奇妙なことです。

ドキュメント内の別の場所にある他の「日付」要素が私のコードに影響を与えている可能性はありますか?

4

1 に答える 1

1

他のindicator要素は、他の要素よりも問題になる可能性が高くなりdateます。Muenchian グループ化で重要なことは、グループ化keyしようとしている要素のみに一致する必要があるため、次のようなより具体的なキーを試してください。

<xsl:key name="financialsByDate"
   match="financials/indicator" use="date" />
于 2013-03-29T11:39:57.793 に答える