Команда Powershell отлично работает для извлечения содержимого из небольшого файла XML (50 КБ), но не работает таким же образом в большом файле XML (50 МБ или более). Не могли бы вы помочь мне в решении этой проблемы.
В приведенном ниже примере тег KEY имеет разные результаты в маленьком файле по сравнению с большим xml файлом. Для решения моей проблемы мне понадобится тот же результат в большом файле XML, что и в маленьком файле.
Обратите внимание - я не могу использовать стандартные функции синтаксического анализатора XML / Lib, поскольку В источнике XML есть управляющие символы (например, STX и т. д. c), которые выходят за рамки XML стандартов, поэтому синтаксический анализатор не работает.
One Small XML:
Select-String "<ABC-PROCESS>","<H>","<PRIORITY>","<KEY>","</H>","</ABC-PROCESS>" Small.xml
Образец Ouput:
<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>
Один большой XML:
Select-String "<ABC-PROCESS>","<H>","<PRIORITY>","<KEY>","</H>","</ABC-PROCESS>" Large.xml
Пример вывода:
<ABC-PROCESS>
<H>
<PRIORITY>-14</PRIORITY>
<KEY>F637A146</KEY>
</H>
<H>
<PRIORITY>-14</PRIORITY>
<KEY>F637A146</KEY>
</H>
<H>
<PRIORITY>-3</PRIORITY>
<KEY>D6306210</KEY>
</H>
...............
...............
...............
Output Continues```