Анализ XML и управление извлеченными данными в Java

#java #multithreading

#java #многопоточность

Вопрос:

Пожалуйста, помогите мне извлечь данные из XML, я пытаюсь найти логику с небольшим знанием Java.

PS: Программа будет выполняться в XML-файле большего размера (XML-файл объемом 2 ГБ), для завершения процесса не должно потребоваться более 10 минут, можем ли мы что-нибудь сделать для многопоточности и сократить время обработки? Пожалуйста, укажите мне библиотеки Java, которые я должен использовать для этой цели.

PFB образец ввода XML и ожидаемый результат.

 <ABC-PROCESS>
<H>
 <PRIORITY>-14</PRIORITY>
 <KEY>F637A146-3437AB82-BA659D4A-17AC7FBF</KEY>
</H>
<H>
 <PRIORITY>-14</PRIORITY>
 <KEY>F637A146-3437AB82-BA659D4A-17AC7FBF</KEY>
</H>
<H>
 <PRIORITY>-3</PRIORITY>
 <KEY>D6306210-CF424F11-8E2D3496-E6CE1CA7</KEY>
</H>
<H>
 <PRIORITY>1</PRIORITY>
 <KEY>D6306210-CF424F11-8E2D3496-E6CE1CA7</KEY>
</H>
<H>
 <PRIORITY>-3</PRIORITY>
 <KEY>4EFR02B4-ADFDAF12-3C123II2-ADAFADFD</KEY>
</H>
<H>
 <PRIORITY>-14</PRIORITY>
 <KEY>5D2702B2-ECE8F1FB-3CEC3229-5FE4C4BC</KEY>
</H>
</ABC-PROCESS>
  

КОНЕЧНЫЙ РЕЗУЛЬТАТ:

 PRIOIRTY KEY  HITS  
1        1    2
-3       1    1
-14      2    3

  

Логика ожидаемого результата выше описана ниже:

1-й и 2-й тег попадания имеют приоритет -14 и сгруппированы в один общий КЛЮЧ, а максимальное значение -14.

Выходной блок для первых 2 обращений:

 PRIOIRTY KEY  HITS  
-14        1     2
  

3-й и 4-й тег попадания имеет максимальный приоритет 1 с одним общим КЛЮЧОМ.
Плита вывода:

 PRIOIRTY KEY  HITS  
1        1     2
  

5-й тег H имеет один приоритет -3 с одним общим КЛЮЧОМ.
Плита вывода:

 PRIOIRTY KEY  HITS  
-3       1     1
  

6-й тег H имеет один приоритет -3 с одним общим КЛЮЧОМ.
Плита вывода:

 PRIOIRTY KEY  HITS  
-14       1     1
  

КОНЕЧНЫЙ РЕЗУЛЬТАТ (агрегированный):

 PRIOIRTY KEY  HITS  
1        1    2
-3       1    1
-14      2    3

  

Комментарии:

1. Что вы пробовали до сих пор?