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

Подскажите, пожалуйста, каким образом можно избежать пробелов перед значением элемента - <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
22.09.2017, 14:59
    #39524931
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробелы перед <xsl:value-of select=" "/>
Код: 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
22.09.2017, 15:59
    #39524994
guly2808
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробелы перед <xsl:value-of select=" "/>
Сон Веры Павловны, спасибо!!!
...
Рейтинг: 0 / 0
22.09.2017, 18:31
    #39525101
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробелы перед <xsl:value-of select=" "/>
Код: xml
1.
2.
3.
<xsl:if test="@flag_minus=-1">
  <xsl:value-of select="concat('(-1/', @znam_avg, ')'")/>
</xsl:if>
...
Рейтинг: 0 / 0
22.09.2017, 19:55
    #39525132
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробелы перед <xsl:value-of select=" "/>
_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
23.09.2017, 12:50
    #39525267
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пробелы перед <xsl:value-of select=" "/>
Сон Веры Павловны,

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

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


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