powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT + значение атрибута из элемента уровнем выше
6 сообщений из 6, страница 1 из 1
XSLT + значение атрибута из элемента уровнем выше
    #34569898
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть цикл в цикле в транформации (шаблон один)
как обратится из внутреннего цикла к атрибуту уровнем выше в внешнем цикле

<xsl:for-each select="GROUP">
<xsl:for-each select="TYPE">
<xsl:if test="@TYPE1= ?????? @GROUP1 ">
</xsl:if>
</xsl:for-each>
</xsl:for-each>


@TYPE1 из TYPE
@GROUP1 из GROUP
...
Рейтинг: 0 / 0
XSLT + значение атрибута из элемента уровнем выше
    #34570857
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам нашёл
через шаблон
...
Рейтинг: 0 / 0
XSLT + значение атрибута из элемента уровнем выше
    #34570899
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

michael R
есть цикл в цикле в транформации (шаблон один)
как обратится из внутреннего цикла к атрибуту уровнем выше в внешнем цикле

<xsl:for-each select="GROUP">
<xsl:for-each select="TYPE">
<xsl:if test="@TYPE1= ?????? @GROUP1 ">
</xsl:if>
</xsl:for-each>
</xsl:for-each>

@TYPE1 из TYPE
@GROUP1 из GROUP
Возможно, я чего-то не понял...

Исходник:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="Windows-1251"?>
<doc>
  <group group1="aa">
    <type type1="aa">Yes1</type>
    <type type1="bb">No</type>
    <type type1="cc">No</type>
  </group>
  <group group1="bb">
    <type type1="aa">No</type>
    <type type1="bb">Yes2</type>
    <type type1="cc">No</type>
  </group>
  <group group1="zz">
    <type type1="aa">No</type>
    <type type1="bb">No</type>
    <type type1="cc">No</type>
  </group>
</doc>

Трансформация:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="Windows-1251"/>

<xsl:template match="doc">
 <out>
 <xsl:for-each select="group">
   <xsl:for-each select="type">
     <xsl:if test="@type1=../@group1">
       <xsl:value-of select="."/>
     </xsl:if>
   </xsl:for-each>
 </xsl:for-each>
 </out>
</xsl:template>

</xsl:stylesheet>

Результат:
Код: plaintext
1.
<?xml version="1.0" encoding="Windows-1251"?>
<out>Yes1Yes2</out>

Это то, что надо?
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
XSLT + значение атрибута из элемента уровнем выше
    #34769337
vetalok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Говоришь сам нашел, а пример не показываешь. Покажи пример плиз.
...
Рейтинг: 0 / 0
XSLT + значение атрибута из элемента уровнем выше
    #34769357
vetalok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<xsl:template match="rs:data/z:row">
<xsl:variable name="outerCurrent" select="current()" />
<tr>
<xsl:for-each select="$xmTmplt/FLD">
<td>
<xsl:value-of select="@name[. = $outerCurrent/@name]"/>
</td>
</xsl:for-each>
</tr>
</xsl:template>
...
Рейтинг: 0 / 0
XSLT + значение атрибута из элемента уровнем выше
    #34782852
baggystyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне больше нравится использовать ось ancestor - test="@id = ancestor::group/@id"

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


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