Ваш тест:
<xsl:if test="//AvamarGridTime[@Day="Monday"]">
проверяет существование элемента AvamarGridTime
, атрибутом Day
которого является понедельник во всем XML входе . Это возвращает true для каждого из проверенных узлов. Чтобы проверить только текущий узел, измените его на:
<xsl:if test="@Day="Monday"">
Или просто:
<xsl:template match="/AvamarGrids">
<Day>
<xsl:value-of select="AvamarGridTime[@Day='Monday']/AvamarGrid" />
</Day>
</xsl:template>
Добавлено:
Для создания отдельного Элемент Day
для каждого AvamarGrid
в пределах выбранного AvamarGridTime
вы можете сделать:
<xsl:template match="/AvamarGrids">
<xsl:for-each select="AvamarGridTime[@Day='Tuesday']/AvamarGrid">
<Day>
<xsl:value-of select="." />
</Day>
</xsl:for-each>
</xsl:template>
Однако обратите внимание, что результатом является фрагмент XML. Если вы хотите получить правильно сформированный документ XML, вы должны добавить элемент root.