powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT как скелеить 4 тэга (слова) в одну строку.
3 сообщений из 3, страница 1 из 1
XSLT как скелеить 4 тэга (слова) в одну строку.
    #39887993
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

есть XML в нем 4 Тэга
Код: xml
1.
2.
3.
4.
<ITEM1>Слово 1</ITEM1>
<ITEM2>Слово 2</ITEM2>
<ITEM3>Слово 3</ITEM3>
<ITEM4>Слово 4</ITEM4>



подскажите как сделать xslt тэмплейт чтобы соеденить все эти тэги в одну строку с пробелами между ними (никаких пробелов в начале и в конце строки), при условии, что любой из тэгов может быть пустым.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<ITEM1></ITEM1>
<ITEM2>Слово 2</ITEM2>
<ITEM3>Слово 3</ITEM3>
<ITEM4></ITEM4>

<xsl:template name="listitem">
	<xsl:param name="item1"/>
	<xsl:param name="item2"/>
	<xsl:param name="item3"/>
	<xsl:param name="item4"/>
<!--Слово 2 Слово 3-->

</xsl:otherwise>
...
Рейтинг: 0 / 0
XSLT как скелеить 4 тэга (слова) в одну строку.
    #39888122
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/root">
    <xsl:apply-templates select="*[. != '']" mode="concat"/>
  </xsl:template>
  
  <xsl:template match="*" mode="concat">
    <xsl:variable name="prfx">
      <xsl:if test="position() != 1">
        <xsl:value-of select="' '"/>
      </xsl:if>
    </xsl:variable>
    <xsl:value-of select="concat($prfx, .)"/>
  </xsl:template>
</xsl:stylesheet>

немного пояснений
Код: xml
1.
<xsl:apply-templates select="*[. != '']" mode="concat"/>

формирует список непустых узлов и для них применяет шаблон
Код: xml
1.
2.
3.
4.
5.
    <xsl:variable name="prfx">
      <xsl:if test="position() != 1">
        <xsl:value-of select="' '"/>
      </xsl:if>
    </xsl:variable>

если мы обрабатываем не первый узел, то вставим перед ним пробел
...
Рейтинг: 0 / 0
XSLT как скелеить 4 тэга (слова) в одну строку.
    #39888175
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Спасибо огромное!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT как скелеить 4 тэга (слова) в одну строку.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]