Мне нужно исправить несколько огромных глючных XML-файлов.Поскольку они глючат, я не могу просто сделать:
[xml]$xml = Get-Content .\data.xml
Я хочу проанализировать их с захваченными группами.Однако я не знаю, как обращаться с вложенными тегами.
Вот простой пример, иллюстрирующий мою проблему.
$xml = '<tag><tag><tag>Anything</tag><tag>Something else</tag></tag><tag><tag>Another value</tag><tag>And another one...</tag></tag></tag>'
$Pattern = '<tag>(?<Content>.+?)</tag>'
([regex]::Matches($Xml, $Pattern)).Value
Этот фрагмент кода возвращает:
<tag><tag><tag>Anything</tag>
<tag>Something else</tag>
<tag><tag>Another value</tag>
<tag>And another one...</tag>
Как я могу изменить свой шаблон Regex, чтобы получить это?
<tag>Anything</tag>
<tag>Something else</tag>
<tag>Another value</tag>
<tag>And another one...</tag>
Кажется, что рекурсия Regex будет соответствовать моим потребностям.Однако я не смог найти кого-то, объясняющего, как это работает с PowerShell (если вообще ...)