Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как убрать в тексте тире? / 11 сообщений из 11, страница 1 из 1
28.05.2008, 21:48
    #35341509
Xsl
Xsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Пишу xsl для преобразования xml в "текстовый файл"....
в xml-ке есть поле Дата - 2008-06-09 а мне нуна что б было 20080609 ....
как это можно сделать?
Спасибо!
...
Рейтинг: 0 / 0
28.05.2008, 22:28
    #35341567
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Есть функция format-date(), но она определена в пространстве имен "urn:schemas-microsoft-com:xslt"

А так substring-before(), substring-after() Вам в помощь

С уважением, Vasilisk
...
Рейтинг: 0 / 0
29.05.2008, 09:32
    #35341941
pavelblk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Translate()
...
Рейтинг: 0 / 0
29.05.2008, 10:22
    #35342089
Xsl
Xsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
_Vasilisk_Есть функция format-date(), но она определена в пространстве имен "urn:schemas-microsoft-com:xslt"

А так substring-before(), substring-after() Вам в помощь

С уважением, Vasilisk
а можно по подробнее...
а тоя начинающий ... как это использовать ненаю...
...
Рейтинг: 0 / 0
29.05.2008, 10:40
    #35342162
pavelblk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
translate('Ваша строка', 'символ который хотите заменить', 'на что заменить')


translate('2008-09-09', '-', '');

Это не работает для строк более одного символа (Читайте подробно описание).
Но в данном случае можно применить.
...
Рейтинг: 0 / 0
29.05.2008, 12:41
    #35342745
Xsl
Xsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
pavelblktranslate('Ваша строка', 'символ который хотите заменить', 'на что заменить')


translate('2008-09-09', '-', '');

Это не работает для строк более одного символа (Читайте подробно описание).
Но в данном случае можно применить.
шось не получилось....
сделал через substring(.......,1,4) substring(.......,6,2) substring(.......,9,2)
получилось то что нуна...
всем спасибо!
...
Рейтинг: 0 / 0
29.05.2008, 15:38
    #35343499
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Xslсделал через substring(.......,1,4) substring(.......,6,2) substring(.......,9,2)
Не правильно. По доброте душевной дарю шаблон
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  <xsl:template name="deleteStr">
    <xsl:param name="str"/>
    <xsl:param name="subStr"/>
    <xsl:if test="$str != ''">
      <xsl:variable name="res1" select="substring-before($str, $subStr)"/>
      <xsl:variable name="res2">
        <xsl:call-template name="deleteStr">
          <xsl:with-param name="str" select="substring-after($str, $subStr)"/>
          <xsl:with-param name="subStr" select="$subStr"/>
        </xsl:call-template>
      </xsl:variable>
      <xsl:variable name="res" select="concat($res1, $res2)"/>
      <xsl:choose>
        <xsl:when test="$res != ''">
          <xsl:value-of select="$res"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$str"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:if>
  </xsl:template>
Использовать так
Код: plaintext
1.
2.
3.
4.
        <xsl:call-template name="deleteStr">
          <xsl:with-param name="str" select="'2008-12-10'"/>
          <xsl:with-param name="subStr" select="'-'"/>
        </xsl:call-template>
pavelblktranslate('Ваша строка', 'символ который хотите заменить', 'на что заменить')
Правильно. translate заменяет, а нужно удалить
...
Рейтинг: 0 / 0
29.05.2008, 16:30
    #35343695
Xsl
Xsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
_Vasilisk_ Xslсделал через substring(.......,1,4) substring(.......,6,2) substring(.......,9,2)
Не правильно. По доброте душевной дарю шаблон
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  <xsl:template name="deleteStr">
    <xsl:param name="str"/>
    <xsl:param name="subStr"/>
    <xsl:if test="$str != ''">
      <xsl:variable name="res1" select="substring-before($str, $subStr)"/>
      <xsl:variable name="res2">
        <xsl:call-template name="deleteStr">
          <xsl:with-param name="str" select="substring-after($str, $subStr)"/>
          <xsl:with-param name="subStr" select="$subStr"/>
        </xsl:call-template>
      </xsl:variable>
      <xsl:variable name="res" select="concat($res1, $res2)"/>
      <xsl:choose>
        <xsl:when test="$res != ''">
          <xsl:value-of select="$res"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$str"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:if>
  </xsl:template>
Использовать так
Код: plaintext
1.
2.
3.
4.
        <xsl:call-template name="deleteStr">
          <xsl:with-param name="str" select="'2008-12-10'"/>
          <xsl:with-param name="subStr" select="'-'"/>
        </xsl:call-template>

так результат же такойже... документ формируется нормально... с датой "20080809" ... чего и добивался...
спасибо!
...
Рейтинг: 0 / 0
29.05.2008, 21:14
    #35344445
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Xsl
так результат же такойже... документ формируется нормально... с датой "20080809" ... чего и добивался...
Разница в том, что у Вас при строке 08-10-25 работать не будет, а у меня будет
...
Рейтинг: 0 / 0
29.05.2008, 21:51
    #35344473
Volder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
_Vasilisk_Разница в том, что у Вас при строке 08-10-25 работать не будет, а у меня будета почему не должен работать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template match="/">
		<xsl:param name="str" select="'08-10-25'"/>
		<val>
			<xsl:value-of select="translate($str,'-','')"/>
		</val>
	</xsl:template>
</xsl:stylesheet>
Код: plaintext
1.
  <?xml version="1.0" encoding="UTF-8" ?> 
  <val> 081025 </val> 
...
Рейтинг: 0 / 0
29.05.2008, 22:06
    #35344487
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как убрать в тексте тире?
Volderа почему не должен работать?
Да, действительно. Не знал. Спасибо за просвещение
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как убрать в тексте тире? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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