Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Как срастить (concat) атрибуты в строку


Автор: Royan 14.2.2006, 19:26
Вот XML
Код

<root>
    <child att="val1"/>
    <child att="val2"/>
    <child att="val3"/>
</root>


Элементов child в общем случае переменное количество.
Как получить строчку вот такого содержания:

val1, val2, val3

Автор: maxim1000 15.2.2006, 01:37
что-то типа этого:
Код

<xsl:for-each select="root/child/@att">
  <xsl:value-of select="."/>,
</xsl:for-each>

Автор: 3,14 15.2.2006, 10:10
Ну, лучше вот так, чтоб лишних запятых не выводил:

Код

<xsl:for-each select="root/child/@att">
  <xsl:if test="position() &gt; 1">,&#x00A0;</xsl:if>
  <xsl:value-of select="."/>
</xsl:for-each>

Автор: Royan 15.2.2006, 19:55
maxim1000, 3,14, Спасибо

Воспользовался подобием варианта 3,14, применив комбинацию position() != last()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)