Всего истинных и ложных в секунду - PullRequest
0 голосов
/ 24 апреля 2018

Я задаю этот вопрос Всего истинных и ложных в текущее время .Я хочу знать, возможно ли получить такой же результат, как в ссылке, но общее значение true и false будет в секунду.

Требуемый результат в

<html>
   <head>
   </head>
   <body>
      <h2>audi</h2>
      <table>
         <thead>
            <tr>
               <th>Total of samples per second</th>
               <th>Time</th>
               <th>Total of TRUE</th>
               <th>Total of FALSE</th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td>3</td>
               <td>1950</td>
               <td>2</td>
               <td>1</td>
            </tr>
            <tr>
               <td>2</td>
               <td>2300</td>
               <td>1</td>
               <td>1</td>
            </tr>
         </tbody>
      </table>
      <h2>renault</h2>
      <table>
         <thead>
            <tr>
               <th>Total of samples per second</th>
               <th>Time</th>
               <th>Total of TRUE</th>
               <th>Total of FALSE</th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td>2</td>
               <td>1500</td>
               <td>2</td>
               <td>0</td>
            </tr>
            <tr>
               <td>2</td>
               <td>2800</td>
               <td>1</td>
               <td>1</td>
            </tr>
         </tbody>
      </table>
   </body>
</html>

Спасибо за идеи

1 Ответ

0 голосов
/ 25 апреля 2018

Таким образом, вместо того, чтобы выводить отсортированную последовательность напрямую, вы дополнительно хотите сгруппировать по @time idiv 1000:

  <xsl:template match="trade">
      <xsl:for-each-group select="car" group-by="@brand">
          <h2>{current-grouping-key()}</h2>
          <table>
              <thead>
                  <tr>
                      <th>Total of samples</th>
                      <th>Time</th>
                      <th>Total of TRUE</th>
                      <th>Total of FALSE</th>
                  </tr>
              </thead>
              <xsl:variable name="sorted-cars" as="element(car)*">
                  <xsl:perform-sort select="current-group()">
                      <xsl:sort select="xs:integer(@time)"/>
                  </xsl:perform-sort>
              </xsl:variable>
              <tbody>
                  <xsl:for-each-group select="$sorted-cars" group-adjacent="@time idiv 1000">
                      <tr>
                          <td>{count(current-group())}</td>
                          <td>{current-group()[last()]/@time}</td>
                          <td>{count(current-group()[@trend = 'true'])}</td>
                          <td>{count(current-group()[@trend = 'false'])}</td>
                      </tr>
                  </xsl:for-each-group>
              </tbody>
          </table>
      </xsl:for-each-group>
  </xsl:template>

https://xsltfiddle.liberty -development.net / nc4NzQ1 / 1

Или вам не нужно сортировать, но используйте group-by="@time idiv 1000", возможно, сортировка групп по current-grouping-key().

...