powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Суммирование значений в одинаковых тегах
7 сообщений из 7, страница 1 из 1
Суммирование значений в одинаковых тегах
    #34937722
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Помогите решить простенькую задачку.
У меня есть теги PAC:
Код: plaintext
1.
2.
3.
4.
*********
<PAC kol_pac="38" pac="20" ves="125879"/>
<PAC kol_pac="3" pac="21"/>
<PAC kol_pac="10" pac="20"/>
********
Мне необходимо проанализировать их и если они равны по pac(на пример pac="20"), то необходимо все аттр. сложить. Результат должен быть:
Код: plaintext
1.
2.
3.
*********
<PAC kol_pac="48" pac="20" ves="125879"/>
<PAC kol_pac="3" pac="21"/>
********
Может можно как то без массива?
Я пробовала:
Код: 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.
29.
30.
31.
32.
33.
34.
nodePac = XPathAPI.selectNodeIterator(document,"//UZ-XDOC/BODY/OTPR/PAC/@pac"); 
         nodeKol_Pac = XPathAPI.selectNodeIterator(document,"//UZ-XDOC/BODY/OTPR/PAC/@kol_pac"); 
         Kol_Pac =  null ;
         Pac =  null ;
         NodeIterator nodePAC = XPathAPI.selectNodeIterator(document,
         "//UZ-XDOC/BODY/OTPR/PAC"); 
         Node PAC;
          while ((PAC = nodePAC.nextNode()) !=  null )
         {
           Node P = XPathAPI.selectSingleNode(document,"//UZ-XDOC/BODY/OTPR/PAC"); 
            if ((Pac = nodePac.nextNode()) !=  null )
           {
               pac = Integer.parseInt(Pac.getNodeValue());
           }
             else 
            {
               pac =  0 ;
            }
             if ((Kol_Pac = nodeKol_Pac.nextNode()) !=  null )
            {
               kol_pac = Integer.parseInt(Kol_Pac.getNodeValue());
            }
             else 
            {
               kol_pac =  0 ;
            }
             if  (pac==k_pac)
            {
               kol_pac+= n_kol;
               System.out.println(pac + "   " + kol_pac);
            }
            k_pac = pac;
            n_kol = kol_pac;
         }
но так сравниваются только два рядом стоящих тега
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34950450
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторно так сравниваются только два рядом стоящих тега
а вы отсортируйте по пакам и тогда сможете сравнивать рядомстоящие теги и возможно получите мечтаемый результат
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34950600
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать так:
Код: plaintext
sum(ancestor::PAC[@pac="20"])
хотя врядли... так вроде суммирует токо значение между откр. и закр. тегом ,а не в атрибуте..
Возможно вот так:
Код: plaintext
sum(ancestor::PAC[@pac="20"])/@kol_pac
Но не факт
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34952008
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо!!
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34952012
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы просуммировать жабой, нужно просто пройтись по всем нодам по порядку, вести словать pac=>сумма и суммировать. XPath'ом просуммировать за один присест по-моему не получится.
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34952060
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
NodeIterator ipac = XPathAPI.selectNodeIterator(document,"//UZ-XDOC/BODY/OTPR/PAC"); 
Node pac;
 while ((pac = ipac.nextNode()) !=  null )
{
  int  kol = Integer.parseInt(pac.getAttribute("kol_pac"));
 string strpac = pac.getAttribute("pac");
 dic[strpac]+=kol;
}
...
Рейтинг: 0 / 0
Суммирование значений в одинаковых тегах
    #34952232
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибочки!!!!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Суммирование значений в одинаковых тегах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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