Ваше выражение
<xsl:value-of select="Book/languaje"/>
выделяет все текстовое содержимое элемента languaje
, который содержит
- a
text()
узел и - a *Элемент 1011 * с самим
text()
узлом - и другим
text()
узлом
Возможно, вам нужны узлы text()[1]
(1) и text()[2]
(3).
Если вы можете использовать XSLT-2.0 или выше, вы можете просто сделать это, используя расширенную функциональность xsl:value
(опционально с разделителем), которая может обрабатывать большечем одно значение одновременно:
<xsl:value-of select="Book/languaje/text()" />
Если вы ограничены XSLT-1.0 и, следовательно, XPath-1.0, xsl:value
может обрабатывать только одно значение за один раз.Но у вас есть как минимум три возможности:
Цикл по text()
узлам languaje
элементов:
<xsl:for-each select="Book/languaje/text()">
<xsl:value-of select="."/>
</xsl:for-each>
Применитьстандартный шаблон на всех languaje
text()
узлах:
<xsl:apply-templates select="Book/languaje/text()" />
Примените стандартный шаблон к элементу languaje
в сочетании с пустым шаблоном для previous
элемент:
<xsl:apply-templates select="Book/languaje" />
<!-- And on the template level the following -->
<xsl:template match="languaje/previous" />
Вывод всех трех подходов должен быть одинаковым:
'ESP'+'' = 'ESP'