У меня есть XML-файл file1.xml
, в котором есть данные, как показано ниже.
<Tag1>
<Tag2>
<file Name="file1.rdl" Path="folder34" />
<File Name="file2.rdl" Path="folder37" />
<File Name="file3.rdl" Path="folder34" />
<File Name="File4.rdl" Path="folder76" />
<File Name="file5.rdl" Path="folder37" />
</Tag2>
</Tag1>
Мне нужен скрипт PowerShell, который будет возвращать значение атрибута Path
на основе значения атрибута Name
.
Пример:
Если я передам значение «File4.rdl», оно должно вернуть значение как «Folder76».
Я написал команду для чтения данных XML и сохранил данные в массиве $Test
.
[xml]$XmlDocument = Get-Content "D:\Roshan\Testing\Test1.xml"
$Test = $XmlDocument.Tag1.Tag2.file | Select-Object Name, Path
Write-Host $Test
Я написал приведенный ниже скрипт PowerShell, чтобы выполнить то же самое.
$AttribureReportName = "File4.rdl"
foreach ($item in $Test) {
if ($item.Name -eq $AttribureReportName) {
$FinalFolder = $item.Path
Write-Output $FinalFolder
}
}
Поскольку у меня слишком много тегов XML, выполнение операции заняло много времени. Есть ли лучший способ сделать то же самое?