Проблема связана с областью, в которой вы звоните apply-templates
. Вы находитесь в корневом шаблоне, что означает, что текущий контекст (местоположение в XML) является корневым элементом. Когда вы используете select
с apply-templates
, XPath основывается на текущем контексте / местоположении.
В вашем случае вы применяете шаблоны ко всем NAME
элементам в корне. Поскольку ничего не существует, ваш шаблон NAME
никогда не вызывается. Как уже было предложено, должно работать следующее, предполагая, что структура, орфография и заглавные буквы верны в вашем примере:
<xsl:apply-templates select="ROOT/MainNode/NAMES/NAME" />
С другой стороны, этот XPath должен работать из любой точки документа, поскольку он ведет себя как абсолютный путь, начинающийся в корне документа:
<xsl:apply-templates select="/ROOT/MainNode/NAMES/NAME" />