powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Банальное УМНОЖЕНИЕ
8 сообщений из 8, страница 1 из 1
Банальное УМНОЖЕНИЕ
    #34443653
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В XPath есть такая функция sum(node-set)

подсчитвает сумму множества узлов

А как подсчитать произведение множества узлов
есть готовый XPath= /ancestor::*[name()='Amount'] (например)
Там множество узлов Amount
выглядят они так:
<Amount>4</Amount>
<Amount>2</Amount>

Смысл цмножить 4 на 2...

сумма считается так: sum(ancestor::*[name()='Amount'])

как сделать произведение на уровне XSLT?
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34444056
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну четыре на два умножить можно :)
number(ancestor::*[name()='Amount'][1]) * number(ancestor::*[name()='Amount'][2])
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34444064
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
математических функций в xpath действительно немного :) Всегда можно заботать рекурсию.
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34444245
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо maXmo

Cделал рекурсию...
последний месяц все мои работы с xslt проходят под девизом рекурсия
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34446444
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Те кто в школе учился, а не просто штаны протирал знают, что
Код: plaintext
 4 * 2 *x*y = exp(log( 4 )+log( 2 )+log(x)+log(y))



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34446448
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как тоже самое xslt записать?
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34447252
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать JavaScript:

data.xml:
Код: plaintext
1.
2.
3.
4.
5.
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="mul.xsl"?>
<root>
  <Amount> 4 </Amount>
  <Amount> 2 </Amount>
</root>

mul.xsl:
Код: 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.
<?xml version="1.0" ?>

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:math="urn:math"
 xmlns:msxsl="urn:schemas-microsoft-com:xslt">

<msxsl:script implements-prefix="math" language="JavaScript">
<![CDATA[
    function mul(nodelist)
    {
 var result =  1 ;
 for (var i= 0 ; i<nodelist.length;i++)
 {
  result *= nodelist.nextNode().text;
 }
 return result;
    }

]]>
</msxsl:script>

<xsl:template match="/">
  <xsl:value-of select="math:mul(//Amount)" />
</xsl:template>

</xsl:stylesheet>



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Банальное УМНОЖЕНИЕ
    #34447405
andrei77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то вариант:))
спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Банальное УМНОЖЕНИЕ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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