На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ANDLL
  
> Замена значения при XSLT-преобразовании
    Добрый день!

    Есть xml-документ вида:

    ExpandedWrap disabled
      <?xml version="1.0" encoding="windows-1251" standalone="yes"?>
      <Message Sender="_01" Receiver="___" FilesCount="1">
      <Receivers>
      <Receiver>569</Receiver>
      <Receiver>757</Receiver></Receivers>
      <Attachments>
      <File Name="test.txt" Description="Test desc" Subject="Test"/></Attachments>
      </Message>


    Моя задача преобразовывать этот XML в TXT и переправлять пользователю.
    При этом нужно заменять атрибут корня Sender (он может принимать значения от "_01" до "_05") осмысленным пояснением, вроде "Отправитель _01".

    Как это можно сделать? apply-templates select не делает того, что нужно.
    Пожалуйста, с примером, потому что уровень знаний XSLT у меня 0 ...
      Решил сам :)

      Написал
      ExpandedWrap disabled
        <xsl:apply-templates select="@Sender"/>

      а потом
      ExpandedWrap disabled
        <xsl:template match="@Sender">
          <xsl:choose>
            <xsl:when test="current() = '_01'">
              <xsl:text>Отправитель_01</xsl:text>
            </xsl:when>
            <xsl:when test="current() = '_02'">
              <xsl:text>Отправитель_02</xsl:text>
            </xsl:when>
            <xsl:when test="current() = '_03'">
              <xsl:text>Отправитель_03</xsl:text>
            </xsl:when>
            <xsl:when test="current() = '_04'">
              <xsl:text>Отправитель_04</xsl:text>
            </xsl:when>
          </xsl:choose>
        </xsl:template>
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0176 ]   [ 15 queries used ]   [ Generated: 28.04.24, 16:55 GMT ]