Я пытался подготовить сценарий powershell, который переименовал бы все файлы XML в значение одного из узлов XML:
$items = Get-ChildItem "C:\test\" -Filter *.xml
foreach ($item in $items) {
$x = New-Object -TypeName 'System.XML.XMLDocument'
$x.Load($item.FullName)
$OutputFileName = $x.SelectSingleNode("//CreationDate").InnerText
$OutputFileName = $OutputFileName -replace "-", "_"
$OutputFileName = $OutputFileName -replace ":", "_"
$OutputFileName = $OutputFileName -replace "T", "_"
Rename-Item $item.Fullname -NewName "$OutputFileName.xml"
}
У меня проблема в том, что $x
всегда пусто,Кажется, что я не могу правильно получить значение узла XML.
Структура XML (имейте в виду, что узел <ActualStartDate>
изменяется между файлами, остальные имена совпадают)
<?xml version="1.0" encoding="utf-8"?>
<Request xmlns="link">
<ActualStartDate>
<TypeCode>0400</TypeCode>
<VerNumber>2</VerNumber>
<CreationDate>2012-01-31T14:33:35</CreationDate>
</ActualStartDate>
</Request>