powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / создание атрибута
6 сообщений из 6, страница 1 из 1
создание атрибута
    #38392603
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Как создать атрибут в XSL ?

Требуется что бы на выходк XML появлялось еще одно поле помимо имеющихся.
Т.е. в XSL добавить атрибут. Данный атрибут должен в себе сожердать максимальное значение из других двух атрибутов dx и dy
например:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="Element.mid.xsl"?>
<EdkamForm ver="10" prntodef="0" defprn="None">
  <TfrPage nm="Page1" pgsz="256" pgw="1467" pgh="1067" pgmg="[0,0,0,0]" pgor="poLandscape" pgb="65535" umg="-1" bdst="3" cl="clBtnFace">
    <TfrElemView nm="Element1" x="304" y="144" dx="16" dy="32" grp="1" n="3" id="125" deg="90"/>
  </TfrPage>
</EdkamForm>



Например новый атрибут rz должен ,должен быть равен = "32"
...
Рейтинг: 0 / 0
создание атрибута
    #38392684
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper7

Вот что выудил, но не отбражает

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?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="text"/>
  <xsl:param name="filename"/>
  <xsl:template match="/">
  <xsl:apply-templates select="EdkamForm/TfrPage/*"/>
  </xsl:template>
  <xsl:template match="TfrElemView">
  <xsl:attribute name="rz"> <xsl:value-of select="@dx"/> </xsl:attribute>,  --Добавил новый атрибут и присвоил значение, но ничего не отображает
  "<xsl:value-of select="$filename"/>",
  "<xsl:value-of select="@nm"/>",
  <xsl:value-of select="@dx"/>,
  <xsl:value-of select="@dy"/>,
  <xsl:value-of select="@n"/>,
  <xsl:value-of select="@id"/>,
  <xsl:value-of select="@deg"/>,
  <xsl:value-of select="@grp"/>
  <xsl:text>&#x0A;</xsl:text>
  </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
создание атрибута
    #38392836
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78,

Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="TfrElemView">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>

      <xsl:attribute name="rz">
        <xsl:choose>
          <xsl:when test="@dx>@dy">
            <xsl:value-of select="@dx"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@dy"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>

    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
создание атрибута
    #38393018
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,

не сработало

Код: xml
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.
<?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="text"/>
<xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="TfrElemView">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>

      <xsl:attribute name="rz">
        <xsl:choose>
          <xsl:when test="@dx>@dy">
            <xsl:value-of select="@dx"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@dy"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>

    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
создание атрибута
    #38393633
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bamper78,
на выходе xml, данные есть кроме данных по новому созданному атрибуту, есть ли ограничения по выводу данных (формат) у нового атрибута?
...
Рейтинг: 0 / 0
создание атрибута
    #38393901
bamper78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bampe
Решение применил такое

Код: xml
1.
2.
3.
4.
              <xsl:choose>
                   <xsl:when test="@dx >= @dy"><xsl:value-of select="@dx"/></xsl:when>
                   <xsl:otherwise><xsl:value-of select="@dy"/></xsl:otherwise>
              </xsl:choose>



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


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