У меня есть XML, который выглядит примерно так.Фильтрация, группировка, подсчет и выбор конкретных узлов в XML с использованием XSLT 1.0
<Dealer>
<Vehicle>
<Model>KA</Model>
<Series>Type A</Series>
<Price>1000.00</Price>
</Vehicle>
<Vehicle>
<Model>KA</Model>
<Series>Type C</Series>
<Price>1400.00</Price>
</Vehicle>
<Vehicle>
<Model>KA</Model>
<Series>Type A</Series>
<Price>1100.00</Price>
</Vehicle>
<Vehicle>
<Model>FOCUS</Model>
<Series>Type B</Series>
<Price>5000.00</Price>
</Vehicle>
<Vehicle>
<Model>FIESTA</Model>
<Series>Type A</Series>
<Price>6000.00</Price>
</Vehicle>
</Dealer>
То, что я пытаюсь сделать, это выбрать 1 конкретную модель (EG: KA), то группа Series в отдельный список (не дубликатов), подсчитать, сколько есть в серии, но показывает только самый дешевый , используя XSLT 1.0.
EG. Мой из пут будет выглядеть примерно так:
KA Type A 2 in stock starting from 1000.00
KA Type C 1 in stock starting from 1400.00
Я смотрел на Muenchian метод группировки, но не могу жениться на ней с другими вещами я пытаюсь достичь.
Это моя попытка ниже. Мое мышление состояло в том, чтобы затем отобразить первый элемент в каждой группе, IE. самый дешевый и как-то подсчитывает каждую группу.
<xsl:strip-space elements="*"/>
<xsl:template match="/Dealer">
<xsl:apply-templates select="Vehicle[Model = 'KA']"/>
</xsl:template>
<xsl:key name="fSeries" match="Vehicle" use="Series" />
<xsl:template match="Vehicle">
<xsl:for-each select="Vehicle[count(. | key('fSeries', Series)[1]) = 1]">
<xsl:sort select="Price" />
<xsl:for-each select="key('fSeries', Series)">
<xsl:sort select="Price" />
<xsl:value-of select="Model" /> <xsl:value-of select="Series" /> <xsl:value-of select="Price" /><br />
</xsl:for-each>
</xsl:for-each>
</xsl:template>
Было бы очень здорово в любой помощи. Благодарю.
Пожалуйста, ваши попытки, чтобы мы могли исправить это, вместо того, чтобы писать код для вас с нуля. –
Извините. Да, вы совершенно правы. Я редактировал свое оригинальное сообщение, чтобы включить код. Я немного смущен кодом, потому что может быть совершенно очевидно, что проблема :) –