Select-String не работает в Power-Shell для извлечения содержимого из большого файла XML - PullRequest
0 голосов
/ 21 апреля 2020

Команда 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```



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...