powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Удаление последнего символа
12 сообщений из 12, страница 1 из 1
Удаление последнего символа
    #36659345
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день подскажите как удалить последний символ в строке с произвольной длинной или заменить его на другой.
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659348
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имел в виду xslt
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659381
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergGun,

Код: plaintext
substring('hello',  1 , string-length('hello') -  1 )
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659443
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasionario,
Спасибо а что если я выбираю так

Код: plaintext
<xsl:value-of select="."/>

Из схемы к примеру

Код: plaintext
1.
2.
3.
4.
5.
6.
    
      <shema>   
        <piО>Что</piO>
	<piN>угодно</piN>
	<piY>написано</piY>
      </shema>

как тогда правильно записать путь к узлу

Код: plaintext
'hello'
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659484
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergGun,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="shema">
      <shema>
        <xsl:for-each select="*">
          <xsl:element name="{name()}">
            <xsl:value-of select="substring(text(), 1, string-length(text()) - 1)"/>
          </xsl:element>
        </xsl:for-each>
      </shema>
    </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659515
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasionario,

Спасибо я попробовал так
Код: plaintext
1.
2.
3.
4.
5.
6.
	<xsl:for-each select="child::shema[@st=1]">
        	 <xsl:variable name="delstr">
  	              <xsl:value-of select="."/>
		 </xsl:variable> 
	     <xsl:value-of select='substring($delstr, 1, string-length($delstr) - 1)'/>
	</xsl:for-each>

И ничего не заметил, заменил -1 на -20 и строку отрезало я так понимаю что там еще и пробелы(хоть в xml без них) или я неправильно написал?
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659519
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Киньте исходный XML.
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659541
Pasionario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или попробуй использовать ф-цию
Код: plaintext
1.
string normalize-space(string)
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659544
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasionario,
Я так понимаю это пробелы между узлами(схему поменять не могу).
Код: plaintext
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.
<shema st="0">


        <piО>Что</piO>
	<piN>угодно</piN>
	<piY>написано,</piY>


	<piО>Что</piO>
	<piN>угодно</piN>
	<piY>написано,</piY>


</shema>


<shema st="1">


        <piО>Что</piO>
	<piN>угодно</piN>
	<piY>написано,</piY>


        <piО>Что</piO>
	<piN>угодно</piN>
	<piY>написано  2 ,</piY>


</shema>
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659608
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогло
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
	<xsl:for-each select="child::shema[@st=1]">
	 <xsl:variable name="delstr">
	     <xsl:value-of select="."/>
	 </xsl:variable> 
	 <xsl:variable name="norm">
	    <xsl:value-of select='normalize-space($delstr)'/>
	 </xsl:variable>		     
		    <xsl:value-of select='substring($norm, 1, string-length($norm) - 1)'/>
	</xsl:for-each>

И возник еще вопрос а как это будет реагировать с
Код: plaintext
align="justify"
я так понимаю он добавляет пробелы
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36659746
SergGun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще вопрос а как узнать значение последних к примеру 5 символов
например:

Код: plaintext
это строка  1 , это на удаление, 

что бы потом удалить
...
Рейтинг: 0 / 0
Удаление последнего символа
    #36671502
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergGunИ еще вопрос а как узнать значение последних к примеру 5 символов
например:

Код: plaintext
это строка  1 , это на удаление, 

что бы потом удалить

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


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