Удалите узлы с дублирующимися элементами XML в Powershell - PullRequest
0 голосов
/ 16 октября 2019

У меня есть xml, который выглядит следующим образом:

myobjects>
<allobjects>
<object name="firstObject" username="usr" pass="pass" specialLine="E:\folder1\files for home  /c /x /waitsecs 30 " default="Yes" binary="1"/>
<object name="secondObjec" username="usr1" pass="thispass" specialLine="E:\folder1\files for home  /c /x /waitsecs 30 " default="no" binary="1" />
<object name="thirdObject" username="usr2" pass="pass1" specialLine="E:\folder1\files for home  /c /x /waitsecs 40 " default="Yes" binary ="0" />
<object name="fourthObject" username="usr3" pass="pass3" specialLine="D:\folder1\files for office  /c /x /waitsecs 50 " default="Yes"  binary="1"/>
<object name="firstobject 1" username="usr4" pass="pass5" specialLine="E:\folder1\files for home  /c /x /waitsecs 30 " default="Yes" binary="0"/>
</allobjects>
<myobjects

Я хочу удалить каждый элемент со значением "binary="0", который я мог бы легко выполнить, используя where-Object, как показано ниже:

[xml]$myfile = [xml](Get-content path_to_my_file)
 $myfile.myobjects.allobjects.childNodes | where-object{$_.binary -eq 0} |foreach-Object{ do my deletion function}

Что я хочу сделать дальше, это удалить каждый узел, где значение specialLine одинаково (остается только один узел для каждого точно такого же specialLines). Я мог получить уникальный specialLines, используя этот $myfile.myobjects.allobjects.object.special | sort-object | get-Unique

, и я просто не могу найти способ удалить узлы и остаться с узлами с уникальными специальными линиями. Я пробовал что-то вроде этого:

$myfile.myobjects.allobjects.childNodes | where-object{$myfile.myobjects.allobjects.object.special | sort-object | get-Unique`} |foreach-Object{ do my deletion function}

, но я думаю, что что-то упустил, или мой подход к этому совершенно неверен. Любые предложения или помощь будут оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...