У меня есть пара (20) svg-шрифтов (формат шрифта на основе xml), в среднем каждый из них занимает около 300 КБ и содержит около 100 Glyph-тегов. Я хотел бы обработать каждый глиф с Inkscape. Итак, часть XML-обработки, которую я хотел бы сделать со скриптом Powershell:
- Откройте шрифт как XML
- Выполните итерацию по каждому глифу, получите значение атрибута и сохраните временный svg (XML), параметризованный этим значением
- Обработать этот файл с помощью Inkscape
- Прочитайте каждый из этих файлов
- Создан новый шрифт-файл с новыми данными
- Сохранить шрифт, удалить глиф
Я прочитал много учебных пособий по Powershell XML и пробовал несколько раз, и есть одна вещь, которую я не знаю, что не так, но я получаю каждый глиф из шрифта с этой строкой:
$nodes = Select-Xml -Content $( Get-Content -Path $_.FullName ) -XPath "//glyph" -Namespace $namespaces
требует много времени и доставляет 60 символов, даже если их больше в шрифте. Все остальное в скрипте работает правильно, но если я создам изображение для обработки всех 20 шрифтов (будет больше в будущем), это займет целый день, и не все глифы будут обработаны.
Итак, есть ли ошибка при чтении файла и разборе XML? Почему это так невероятно медленно и почему не все глифы обрабатываются?