powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка по элементам из двух уровней
11 сообщений из 36, страница 2 из 2
Сортировка по элементам из двух уровней
    #38729268
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВалерьянкаAntonariyшаблон соответствует элементу item, для каждого из них создается новый <item></item>, в который записывается атрибут datetime и копируется содержимое исходного item. из этих новых <item></item> в переменной $tmp создается новый xml-документ.

а исходный шаблон item содержит в себе (после модернизации) копию самого себяне содержит.
исходный документ и содержимое $tmp абсолютно независимы.
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38729280
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерьянкаа исходный шаблон item содержит в себе (после модернизации) копию самого себя, который содержит копию самого себя с копией самого себя и так далее..похоже на бесконечный цикл......как это правильно представить?никак, потому что это не соответствует действительности.
создается НОВЫЙ элемент item, в который копируется СОДЕРЖИМОЕ старого. новый документ от старого отличается только тем, что у item появился атрибут datetime.
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38732025
Совершенно не видно в каком месте ошибка, ничего не выводится,
как проверить, что common:node-set($item_time) вызывает или не вызывает ошибки процессора? как заставить процессор выводить ошибки?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38732062
Antonariyсоздается НОВЫЙ элемент item, в который копируется СОДЕРЖИМОЕ старого. новый документ от старого отличается только тем, что у item появился атрибут datetime.

как же процессор отличит новый от старого, если в скрипте есть уже два блока
<xsl:template match="item"> ?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38732120
Вообщем, не могу продвинутся или хотя-бы поэкспериментировать, потому что при вставке блока
Код: xml
1.
2.
3.
<xsl:for-each select="msxsl:node-set($item_time)">
   <xsl:sort value-of select="@datetime"/>
</xsl:for-each>


или
Код: xml
1.
2.
3.
<xsl:for-each select="common:node-set($item_time)">
   <xsl:sort value-of select="@datetime"/>
</xsl:for-each>


страница не работает, а ошибки я не вижу..
может быть где-то в логах сервера можно поискать ошибки процессора? где?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38732813
прописал в системе E_Parse, увидел ошибки.
Как только вставляю for each

Код: xml
1.
2.
3.
<xsl:for-each select="msxsl:node-set($tmp)" > 
       <xsl:sort  select = "datetime" order="Descending"/>
</xsl:for-each >



вот что пишет парсер
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: Specification mandate value for attribute value-of in Entity, line: 359 в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 267)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: attributes construct error in Entity, line: 359 в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 267)
Предупреждение: DOMDocument::loadXML() [domdocument.loadxml]: Couldn't find end of Start Tag sort line 359 in Entity, line: 359 в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 267)

несоответствие спецификации?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38732822
Вот еще какие ошибки есть

Предупреждение: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: {urn:schemas-microsoft-com:xslt}node-set: called with too many arguments в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 289)
Предупреждение: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: runtime error: file /home/privatesales/cms/ line 244 element for-each в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 289)
Предупреждение: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: Failed to evaluate the 'select' expression. в файле /home/privatesales/cms/modules/Xsl/Xsl.class.php (строка 289)

первая ошибка - "too many arguments"!
что с этим можно сделать?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38733336
Немного продвинулся!
сработало расширение xmlns:exsl=" http://exslt.org/common"!
но функция node-set() выдает не набор узлов, которые можно перебрать, а один единственный элемент - строку, в которой в кучу сложено все содержимое всех элементов item - названия цены описания и все такое, без каких либо разделителей! а в спецификации написано что это набор узлов.
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38733386
Antonariyшаблон соответствует элементу item, для каждого из них создается новый <item></item>, в который записывается атрибут datetime и копируется содержимое исходного item. из этих новых <item></item> в переменной $tmp создается новый xml-документ.

не сходится что-то с вашей теорией, в переменной $tmp нет xml-дерева, там есть значения узлов XML-дерева, что я смогу с ними сделать?
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38733413
Antonariy
Код: xml
1.
2.
3.
<xsl:for-each select="msxsl:node-set($tmp)">
   <xsl:sort />
</xsl:for-each>



зачем этот цикл? перебирается набор узлов, ...зачем? как к этим узлам приложить шаблон:
...
Рейтинг: 0 / 0
Сортировка по элементам из двух уровней
    #38733565
Antonariyсоздается НОВЫЙ элемент item, в который копируется СОДЕРЖИМОЕ старого. новый документ от старого отличается только тем, что у item появился атрибут datetime.

не сходится теория, XML не создается,

Код: xml
1.
<xsl:copy-of select="*"/>



копирует и вставляет значения узлом XML, которые выводятся одной строкой вместе с исходным содержанием шаблона, но никак не XML
В переменной $tmp тоже XML не создается, там одна строка из содержимого узлов XML, exsl:node-set($item_time) также XML не содержит, хотя если написать exsl:node-set($item_time)/item, тогда уже есть набор чего-то, неизвестно чего и по нему можно пройтись через for each, и даже посмотреть вновь созданный атрибут @datetime
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сортировка по элементам из двух уровней
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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