powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Пробелы перед <xsl:value-of select=" "/>
7 сообщений из 7, страница 1 из 1
Пробелы перед <xsl:value-of select=" "/>
    #39524880
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Подскажите, пожалуйста, каким образом можно избежать пробелов перед значением элемента - <xsl:value-of select=" "/>?

Нужно вот этого избежать (1/ 5), должно быть - (1/5)
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsl:if test="@znam_avg!=999999">
<td><xsl:value-of select="@val_avg"/>

             <xsl:if test="@flag_minus=-1">(-1/<xsl:value-of select="@znam_avg"/>)</xsl:if>
             <xsl:if test="@flag_minus=1">(1/<xsl:value-of select="@znam_avg"/>)</xsl:if>
</td>
</xsl:if>



Пример получившейся ведомости на скрине.
Спасибо!
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39524931
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <item
    znam_avg="                   123"
    val_avg="456"
    flag_minus="-1" />
  <item
    znam_avg="    789"
    val_avg="abc"
    flag_minus="1" />
</root>


Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" />
  <xsl:template match="/root">
    <root>
      <xsl:for-each select="item">
        <xsl:if test="@znam_avg!=999999">
          <td>
            <xsl:value-of select="@val_avg" />
            <xsl:if test="@flag_minus=-1">
              <xsl:value-of select="'(-1/'" />
              <xsl:call-template name="left-trim">
                <xsl:with-param name="string" select="@znam_avg" />
              </xsl:call-template>
              <xsl:value-of select="')'" />
            </xsl:if>
            <xsl:if test="@flag_minus=1">
              <xsl:value-of select="'(1/'" />
              <xsl:call-template name="left-trim">
                <xsl:with-param name="string" select="@znam_avg" />
              </xsl:call-template>
              <xsl:value-of select="')'" />
            </xsl:if>
          </td>
        </xsl:if>
      </xsl:for-each>
    </root>
  </xsl:template>
  <!-- trim-left recursive template -->
  <xsl:template name="left-trim">
    <xsl:param name="string" select="''" />
    <xsl:variable name="tmp" select="substring($string, 1, 1)" />
    <xsl:choose>
      <xsl:when test="$tmp = ' ' or $tmp = '&#xA;'">
        <xsl:call-template name="left-trim">
          <xsl:with-param name="string" select="substring-after($string, $tmp)" />
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$string" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>


Код: xml
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="utf-8"?>
<root>
	<td>456(-1/123)</td>
	<td>abc(1/789)</td>
</root>
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39524994
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны, спасибо!!!
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39525101
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
<xsl:if test="@flag_minus=-1">
  <xsl:value-of select="concat('(-1/', @znam_avg, ')'")/>
</xsl:if>
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39525132
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" />
  <xsl:template match="/root">
    <root>
      <xsl:for-each select="item">
        <xsl:if test="@znam_avg!=999999">
          <td>
            <xsl:value-of select="@val_avg" />
            <xsl:if test="@flag_minus=-1">
              <xsl:value-of select="concat('(-1/', @znam_avg, ')')" />
            </xsl:if>
            <xsl:if test="@flag_minus=1">
              <xsl:value-of select="concat('(1/', @znam_avg, ')')" />
            </xsl:if>
          </td>
        </xsl:if>
      </xsl:for-each>
    </root>
  </xsl:template>
</xsl:stylesheet>


Код: xml
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <td>456(-1/                   123)</td>
  <td>abc(1/    789)</td>
</root>


Исходный xml как в моем предыдущем постинге, проверял на дотнетовском XslCompiledTransform.
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39525267
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Вы безусловно правы. Но я исходил из того, что в самом XML пробелов нет, а они появляются только при трансформации.
...
Рейтинг: 0 / 0
Пробелы перед <xsl:value-of select=" "/>
    #39526218
guly2808
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

Спасибо!!! То, что нужно!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Пробелы перед <xsl:value-of select=" "/>
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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