Не уверен, действительно ли XSLT, который вы показываете, является XSLT, который вы используете. То, как вы это публикуете, не может быть скомпилировано. Линия xsl:apply-templates
находится на том же уровне, что и линия xsl:template
? Действительно ли xsl:text
содержит xsl:value-of
? Если это так, мне было бы очень интересно узнать, какой процессор вы используете, потому что ни один процессор не должен обрабатывать ваш XSLT, не сообщая вам об ошибках.
Тем не менее, чтобы улучшить свою таблицу стилей, сделайте, как Рассел Леггетт объясняет в своем ответе. Вместо выбора всех узлов внутри вашего шаблона (вы начинаете с /
, выбирая из корня), выберите относительно текущего узла. Взяв его ответ и удалив ошибку xsl:text
, вы получите:
<xsl:template match="j.0:property">
<xsl:value-of select="@rdf:resource"/>
</xsl:template>
При использовании XSLT 1.0, если вы выберете несколько узлов с xsl:value-of
, будет выведено только первое. Поскольку у вас, похоже, есть где-то работающий xsl:apply-templates
, эта строка, которая выбирает все, но возвращает только первое (то, что в вашем коде начинается с /
), будет вызываться три раза для каждого узла, выбранного ваш xsl:apply-templates
.
Чтобы помочь вам в дальнейшем и лучше, покажите минимальный пример полной таблицы стилей XSLT, которую мы можем использовать для ваших примеров данных.