Причина, по которой они выполняются вместе, заключается в том, что таблица стилей использует встроенный шаблон, для сравнения которого сворачивается пробел. Я не вижу, где вы явно вызываете <word/>
или окружающий XML, поэтому я предполагаю, что это где-то <xsl:apply-templates />
. Вам просто нужно просто определить шаблон соответствия как таковой:
<xsl:template match="word">
<xsl:value-of select="." /> 
</xsl:template>
Пробелы значительны, поэтому, если в приведенном выше решении вы обнаружите, что все портится, вы можете заключить в узел <xsl:text/>
, и пробелы исчезнут.
Тогда, когда слово узел совпадает, вы получаете его через интервал. Примечание: в конце будет дополнительное место. Избавиться от этого будет чуть дольше.
<xsl:temmplate match="word">
<xsl:value-of select="." />
<xsl:if test=". !=../word[last()]">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
Это будет работать только при применении шаблонов, но не при использовании директив value-of или copy-of xsl.