powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / изменить регистр
3 сообщений из 3, страница 1 из 1
изменить регистр
    #37861812
Sergii1950
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просьба указать на мои ошибки в задаче по изменению регистра. Имею файл xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<articles>
		<article-copy file="12bsnpef">
			<title>АЛЕКСЕЙ БУТОВСКИЙ О СИСТЕМЕ ФИЗИЧЕСКОГО ВОСПИТАНИЯ ВО ФРАНЦИИ</title>
			<author>Бубка, Сергей Назарович</author>
		</article-copy>

		<article-copy file="12aaipba">
			<title>Особенности применения лечебной физической культуры для детей больных бронхиальной астмой.</title>
			<author>Алёшина, Алла Ивановна</author>
		</article-copy>
.......................................
</articles>


Необходимо, чтобы во всех <title> были только заглавные буквы. В чем моя ошибка? Делаю так, вариант 1-й - изменений нет:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<xsl:template match="text()">
    <xsl:call-template name="title">
        <xsl:with-param name="Input" select="."></xsl:with-param>
    </xsl:call-template>
</xsl:template>

<xsl:variable name="lowCase">абвгдеёжзийклмнопрстуфхцчшщыъьэюя</xsl:variable>
<xsl:variable name="upCase">АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯ</xsl:variable>

<xsl:template name="title">
    <xsl:param name="Input" />
    <xsl:value-of select="translate($Input, $lowCase, $upCase)"/>
</xsl:template>


вариант 2-й - регистр изменился, но исчезает <title>, <article-copy в одну строку:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<xsl:template match="title">            
           <xsl:call-template name="uppercase">            
               <xsl:with-param name="input"  select="." />            
           </xsl:call-template>            
       </xsl:template>            
      
       <xsl:template name="uppercase">            
           <xsl:param name="input"/>            
           <xsl:value-of select="translate($input,'абвгдеёжзийклмнопрстуфхцчшщыъьэюя','АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯ')"/>          
       </xsl:template>
...
Рейтинг: 0 / 0
изменить регистр
    #37862017
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  
  <xsl:template match="title/text()">
    <xsl:value-of select="translate(., $lowCase, $upCase)" />
  </xsl:template>

  <xsl:variable name="lowCase">абвгдеёжзийклмнопрстуфхцчшщыъьэюя</xsl:variable>
  <xsl:variable name="upCase">АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯ</xsl:variable>
...
Рейтинг: 0 / 0
изменить регистр
    #37862138
Sergii1950
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PA, спасибо, работает. Желаю удачи и успехов.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / изменить регистр
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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