Есть пачка логов за несколько последних лет в виде XML:
<root>
<item date="05-08-2015" time="05:45:32.12" data1="888.8">
<data2>LOW</data2>
</item>
...
<item date="05-08-2015" time="23:45:32.04" data2="1956.2">
<data3>OK</data3>
</item>
Софтина которая генерирует эти XML почему-то не закрывает root.
Набросал такой скриптик:
[xml]$XmlDocument = Get-Content -Path LogXML-05-08-2015.log
$XmlDocument.selectNodes('//root/item') | foreach{ New-Object -TypeName psobject -Property @{date=$_.date; time=$_.time; data1=$_.data1;} } |
Export-Csv data.csv -NoTypeInformation -Encoding UTF8
При запуске скрипта в PowerShell последний ругается на отсутствие закрывающего элемента :
Непредусмотренный конец файла. Не закрыты следующие элементы: root., строка 3312, позиция 8.
Вопрос №1: как силами PowerShell добавить в обрабатываемый XML файл элемент
</root>
и выполнить мой скрипт?
Вопрос №2: как заставить мой скрипт обрабатывать пачки LogXML-*.log за раз, т.к. 1 файл=1сутки, а файлов много (за последние несколько лет) и результат выдавать в виде единого CSV файла?