В настоящее время я сталкиваюсь с проблемой с программным обеспечением, с которым я работаю, это программное обеспечение получает от внешнего программного обеспечения несколько Xmls, которые нам нужно обработать, теперь наша проблема заключается в том, что эти Xml-файлы содержат много узлов, которыесовершенно бесполезный, а также делает файлы (xmls) действительно тяжелыми из-за этого, в результате наша программа работает очень медленно для обработки каждого из xmls, это должно быть изменено в будущем, и я хотел бы доказать это, удалив эти узлымы бы значительно улучшили время обработки, теперь я хотел бы в качестве первого шага сделать это вручную, используя образец xml и применяя синтаксис регулярных выражений, чтобы удалить все узлы со значением value пустым, это синтаксис, который я используютеперь и с помощью функции замены в блокноте я могу удалить эти строки, а затем удалить пустые строки:
<.*(\s\w+?[^=]*?="[^"]*?")*?\s+?value="[""]*?".*?>
Пример
<TEST_NODE value="1"/>
<TEST_NODE value=""/>
<TEST_NODE value="0"/>
В моем случае узлы могут называться по-разномуи могут иметь разные свойства, но мне нужно заботиться о тех, которые содержат something в свойстве value, поэтому в этом случае я должен удалить вторую строку
Это выглядит нормально, однако с очень большими файлами (10 Мб) у функции replace notepad ++, похоже, есть проблемы, и она перестает работатьправильно разбивая множество тегов ...
Я пытался использовать другое программное обеспечение под названием "Ultraedit", но синтаксис, я думаю, отличается, так как я могу использовать регулярные выражения, но нужно выбрать один из этих вариантов:Perl, Unix, Ultraedit;только используя «Perl», я могу сделать эту замену, но и там, для больших файлов это не работает, и я получаю следующую ошибку:
Сложность сопоставления выражения превысила доступные ресурсы ..
Кто-нибудь может мне помочь с этим?к сожалению, я не так хорош с Regex, и я не уверен, хорош ли этот код или нет ..