У меня есть XML-файл с несколькими узлами сестры, один из которых хранит временные метки <TIMESTAMP>
, другой с категориальными кодами <Code>
, а другой с целыми значениями <Count>
. Я хочу рассчитать разницу в значениях <Count>
, за <Code>
, связанных с первым и последним <TIMESTAMP>
. Есть несколько кодов ... Я немного упростил XML. Результат этого вычисления затем заполнит одну из двух ячеек в таблице HTML. Я ограничен использованием XSLT 1.0 для преобразования XML в HTML.Добавление значений из узлов XML на основе первой и последней дат с использованием XSLT
Вот фрагмент из XML:
XML
<?xml version="1.0" encoding="UTF-8"?>
<surveyGDB>
<table>
<tablename>QaQcPoints
<record>
<OBJECTID>1</OBJECTID>
<TIMESTAMP>20150722 09:18:43</TIMESTAMP>
<Code>tp</Code>
<Count>50</Count>
</record>
<record>
<OBJECTID>2</OBJECTID>
<TIMESTAMP>20150722 09:18:43</TIMESTAMP>
<Code>bl</Code>
<Count>110</Count>
</record>
<record>
<OBJECTID>5</OBJECTID>
<TIMESTAMP>20150730 01:05:22</TIMESTAMP>
<Code>bl</Code>
<Count>100</Count>
</record>
<record>
<OBJECTID>6</OBJECTID>
<TIMESTAMP>20150730 01:05:22</TIMESTAMP>
<Code>tp</Code>
<Count>55</Count>
</record>
</tablename>
</table>
</surveyGDB>
Выходной HTML таблица должна выглядеть примерно так:
HTML
----------------------------
| Code | Added | Deleted |
----------------------------
| tp | 5 | 0 |
----------------------------
| bl | 0 | 10 |
----------------------------
Я предполагаю, что мне нужно отсортировать значения <TIMESTAMP>
и найти первую и последнюю позиции отсортированных значений. Вот соответствующий код XSL У меня есть для нахождения значения <Count>
, связанный с первой временной меткой:
XSL
<xsl:for-each select="/surveyGDB/table/tablename/record" />
<xsl:sort select="TIMESTAMP" />
<xsl:choose>
<xsl:when test="position() = 1">
<xsl:value-of select="Count" />
</xsl:when>
</xsl:choose>
Но как мне найти последнюю метку времени, а затем, как я тогда группировать рассчитано <Count>
значениями <Code>
?
Любые советы о том, как наилучшим образом подойти к этому?
Это отлично. Спасибо! – jesselangdon