Удаляет строки из файла XML, которые соответствуют строкам из списка - PullRequest
1 голос
/ 28 марта 2019

Кажется, я не могу понять, как пройти через 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 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...