Иногда мне нужен быстрый скрипт, чтобы прочитать все определенные теги в большом количестве XML-файлов и сделать по ним отчет — например. показать, какие узлы имеют одинаковые значения в данном атрибуте, таком как идентификатор. Вместо написания .net-приложения эту задачу можно решить и с помощью PowerShell.

Во-первых, у нас есть пакет файлов XML в папке. Эти файлы XLIFF в некоторых случаях включают все файлы с расширением, начинающимся с символа x.

Затем давайте просто перечислим идентификаторы каждого тега ‹trans-unit›:

Если у вас другая структура XML и разные узлы, давайте изменим конечную часть после $d в строке №7.

Приведенный выше скрипт также группирует результат по значениям идентификаторов. Это полезно, когда вы хотите перечислить только повторяющиеся идентификаторы — просто добавьте «| где счет -ge 2”:

Мы даже можем сделать идентификаторы уникальными и сохранить файлы с еще одной небольшой модификацией: