powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Замена пустого атрибута
5 сообщений из 5, страница 1 из 1
Замена пустого атрибута
    #38998168
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно в разных узлах заменить пустой атрибут. Сделал так
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsl:template name="emptyAttr">
	<xsl:param name="text"/>
	<xsl:choose>
		<xsl:when test="string-length($text)=0"><xsl:text>Не определено</xsl:text></xsl:when>
		<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
	</xsl:choose>
</xsl:template>


и вызов в разных местах
Код: xml
1.
2.
3.
<xsl:attribute name="RowName">
		<xsl:call-template  name="emptyAttr"><xsl:with-param name="text" select="Name/text()"/></xsl:call-template>
	</xsl:attribute>


мне кажется, что это многословно и делать надо по другому.
Подскажите как или здесь все нормуль!
...
Рейтинг: 0 / 0
Замена пустого атрибута
    #38998266
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaНужно в разных узлах заменить пустой атрибут
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template match="@*">
  <xsl:attribute name="name()">
    <xsl:choose>
      <xsl:when test=". = ''"><xsl:text>Не определено</xsl:text></xsl:when>
      <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
</xsl:template>

и вызов
Код: xml
1.
<xsl:apply-templates select="*"/>
...
Рейтинг: 0 / 0
Замена пустого атрибута
    #38998268
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Код: xml
1.
<xsl:attribute name="name()">

Заменить на
Код: xml
1.
<xsl:attribute name="{name()}">
...
Рейтинг: 0 / 0
Замена пустого атрибута
    #38998665
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

спасибо за наводку)))
у меня атрибут Name нужно заменить на RowName c учетом пустышки.
Вот
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template match="@Name">
  <xsl:attribute name="RowName">
    <xsl:choose>
      <xsl:when test=". = ''"><xsl:text>Не определено</xsl:text></xsl:when>
      <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
</xsl:template>



а с вызовом не понятно, где его вставлять
было
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template match="Places">
	<Placement>
	<xsl:attribute name="Code"><xsl:value-of select="Key/text()"/></xsl:attribute>
	<xsl:attribute name="RowName">
		<xsl:call-template  name="emptyAttr"><xsl:with-param name="text" select="Name/text()"/></xsl:call-template>
	</xsl:attribute>
	</Placement>
</xsl:template>


и так в разных узлах.

куда вставлять вызов?
...
Рейтинг: 0 / 0
Замена пустого атрибута
    #38998832
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
<xsl:template match="Places">
  <Placement>
    <xsl:attribute name="Code"><xsl:value-of select="Key/text()"/></xsl:attribute>
    <xsl:apply-templates select="@Name"/>
  </Placement>
</xsl:template>
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Замена пустого атрибута
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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