powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / EXSLT.org - каг?
10 сообщений из 10, страница 1 из 1
EXSLT.org - каг?
    #34790724
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как эту фиговину прекрутить к msxml процессору?(


Код: plaintext
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:set="http://exslt.org/set">
<xsl:import href="set.distinct.xsl" />

<xsl:output encoding="windows-1251" method="xml"/>

<xsl:key name="CK" match="Row" use="Cell[1]/Data"/>

<xsl:template match="/">
  <ROW>

<!--    <xsl:for-each select="//Row[generate-id()=generate-id(key('CK', Cell[1]))]"> -->
 <xsl:for-each select="set:distinct(//Row/Cell[1])">
  <CELL>
    <NAME>
    <xsl:value-of select="Cell[1]"/>
    </NAME>
    <DATA>
    <xsl:for-each select="key('CK',Cell[1])">
      <A><xsl:value-of select="substring(Cell[2],1,10)"/></A>
      <B><xsl:value-of select="Cell[3]"/></B>
    </xsl:for-each>
    </DATA>
   </CELL>
   </xsl:for-each>
  </ROW>
</xsl:template>

</xsl:stylesheet>

все равно пишет Namespace 'http://exslt.org/set' does not contain any functions.

если кто-то юзал с обычными процессорами - подскажите плз.
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791182
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тоже не вижу, чтобы в Namespace 'http://exslt.org/set' были какие-либо функции.
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791302
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дядь, ну не глумись ( объясни дебилу( как мне подключить функцию set:distinct() ?(
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791545
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сначала она должна существовать в какой-либо объективной форме, только потом её можно будет подключать. Функции-то нет.
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791612
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
функция подключается через set.distinct.xsl..

Код: plaintext
1.
2.
3.
4.
<?xml version="1.0" encoding="utf-8"?>
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:func="http://exslt.org/functions" xmlns:set="http://exslt.org/sets" version="1.0" extension-element-prefixes="set" set:doc="http://www.exslt.org/set">
   <import href="set.distinct.template.xsl"/>
   <import href="set.distinct.function.xsl"/>
</stylesheet>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:exsl="http://exslt.org/functions"
                xmlns:set="http://exslt.org/sets"
                extension-element-prefixes="exsl"
                exclude-result-prefixes="set">

<exsl:function name="set:distinct">
   <xsl:param name="nodes" select="/.." />
   <xsl:choose>
      <xsl:when test="not($nodes)">
         <exsl:result select="/.." />
      </xsl:when>
      <xsl:otherwise>
         <xsl:variable name="distinct" 
                       select="set:distinct($nodes[position() > 1])" />
         <exsl:result select="$distinct | $nodes[1][. != $distinct]" />
      </xsl:otherwise>
   </xsl:choose>
</exsl:function>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791872
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exsl:function? Цэ шо? Почему не сразу хслт2?
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34791943
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это exslt..

,,, o_O ,,,

я вот и не знаю, можно ли к xsl1.0 а конкретнее к процессору msxml это прикрутить...

если нет, то как использовать вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<xsl:template name="set:distinct">
  <xsl:param name="nodes" select="/.."/>
  <xsl:param name="distinct" select="/.."/>
  <xsl:choose>
    <xsl:when test="$nodes">
      <xsl:call-template name="set:distinct">
      <xsl:with-param name="distinct" select="$distinct | $nodes[1][not(. = $distinct)]"/>
      <xsl:with-param name="nodes" select="$nodes[position() > 1]"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="$distinct" mode="set:distinct"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="node()|@*" mode="set:distinct">
   <xsl:copy-of select="." />
</xsl:template>

не функция, но шаблончег %)

пытался тупо убрать set: , но как его гонять не очень понял..
что-то типа

Код: plaintext
1.
2.
3.
     <xsl:call-template name="distinct">
       <xsl:with-param name="nodes" select="Row"/>
       <xsl:with-param name="distinct" select="Cell[1]"/>
     </xsl:call-template>

в замену родному

Код: plaintext
1.
2.
  <xsl:key name="CK" match="Row" use="Cell[1]"/>
      <xsl:for-each select="Row[generate-id()=generate-id(key('CK', Cell[1]))]">
?)
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34792034
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот шаблон не найдёт уникальных узлов, чем тебя не устроил вариант с ключом?
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34792043
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и с осями?
...
Рейтинг: 0 / 0
EXSLT.org - каг?
    #34792548
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
устроил. вот только exslt работает быстрее на порядок для большого объема записей..(
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / EXSLT.org - каг?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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