сумма по группе XSLT "мунечская группировка" - PullRequest
1 голос
/ 21 декабря 2011

Похоже, на данный момент я не могу понять группировку мунечианцев, поэтому мне нужно попросить о помощи ..

Я пытаюсь подсчитать цену всех своих элементов типа 1.

Мой XML-файл выглядит следующим образом.

<autoads>

    <ad>
        <type>1</type>
        <name>Honda</name>
        <model>XL 1000 V</model>
        <regyear>2001</regyear>
        <price>129900</price>
        <addate>20020115</addate>
        <volume>1000</volume>
        <category></category>
    </ad>
    <ad>
        <type>2</type>
        <name>Nissan</name>
        <model>Almera 1.4S</model>
        <regyear>1997</regyear>
        <price>119000</price>
        <addate>20020118</addate>
        <volume>0</volume>
        <category>5 dörrar</category>
    </ad>
....
</autoads>

Итак, мне нужно сгруппировать все типы 1 и суммировать цену для всех из них:

Это то, что я делал до сих пор вмой XSL-файл

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>
<body>

<h2>Fordon</h2>
<table border="1">
<tr bgcolor="#ccc">
<th>Namn</th>
<th>Modell</th>
<th>Beskrivning</th>
<th>Typ</th>

</tr>

<xsl:for-each select="//ad[type != '1']" >
<xsl:sort select="type" order="descending" />
<xsl:sort select="name"/>
<xsl:sort select="model"/>



<tr>
<td><xsl:value-of select="name" /></td>
<td><xsl:value-of select="model" /></td>
<td><xsl:value-of select="adtext" /></td>
<td><xsl:value-of select="type" /></td> 
</tr>


</xsl:for-each>
</table>


<p>Summan av fordon är <xsl:value-of select="sum(//price)" /> SEK</p>
Antal bilar är <xsl:value-of select="count(/*/*/type[. = 2])"/><br /> 


</body>
</html>

</xsl:template>
</xsl:stylesheet>

Проблема, с которой я столкнулся, заключается в том, что я действительно не знаю, куда поместить строки, чтобы они не мешали остальной части моего кода.

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2011

Для xslt, если вы хотите сложить все цены типа 1

<xsl:value-of select="sum(//ad[type = '1']//price)" />
...