Кажется, я не могу понять, как пройти через XML-файл и удалить весь блок "<option></option>
", который соответствует строкам из списка.Я знаю, что мне нужно перебрать файл XML, а затем перебрать список.В конце я бы заменил содержимое xml на «отфильтрованные результаты».
Формат файла XML:
<comboOptions>
<option value="1" text="MAINTYPE 1: SOME UNIQUE DESCRIPTION">
<option value="NOT_REQ" text="SUBTYPE NOT REQUIRED (NOT_REQ)"/>
</option>
<option value="13" text="MAINTYPE 2: SOME UNIQUE DESCRIPTION">
<option value="VALUE1" text="SUBTYPE 1: SOME UNIQUE DESCRIPTION"/>
<option value="VALUE2" text="SUBTYPE 2: SOME UNIQUE DESCRIPTION"/>
</option>
<option value="11" text="MAINTYPE 5: SOME UNIQUE DESCRIPTION">
<option value="VALUE1" text="SUBTYPE 1: SOME UNIQUE DESCRIPTION"/>
<option value="VALUE2" text="SUBTYPE 2: SOME UNIQUE DESCRIPTION"/>
<option value="VALUE3" text="SUBTYPE 3: SOME UNIQUE DESCRIPTION"/>
</option>
<comboOptions>
Мои попытки на данный момент:
[xml]$XmlFIle = Get-Content C:\Path\to\file.xml
$RemoveList = @("MAINTYPE 1: SOME UNIQUE DESCRIPTION", "MAINTYPE 5: SOME UNIQUE DESCRIPTION")
ForEach ($option in $XmlFIle.comboOptions.option)
{
$RemoveList | Where-Object{ $_ -notcontains $option.text }
}
$XmlFIle.comboOptions.option | Foreach-Object {
$myobj1 = $_.text
$RemoveList | Where-Object { $_ -notcontains $myobj1 }
}