【发布时间】:2019-04-23 14:56:57
【问题描述】:
我已经搜索了所有地方以找到此问题的答案,但我似乎找不到适合我的答案,是的,我知道这已经被问了很多,但没有任何工作。
这是我的代码:
$Request = Invoke-RestMethod ($BaseURL + $StatPage) -WebSession $Session -Method Post -Body $StatBody
$Request = $Request | Where-Object {$_.'mac' -ne "00:00:00:00:00:00"}
我什至尝试过,而不是删除节点,而是将其打印出来:
foreach($Node in $Request.'ajax-response'.response.'acl-list'.acl.deny)
{
if($Node.'mac' -eq "00:00:00:00:00:00")
{
$Node.ParentNode.RemoveNode($Node)
}
}
这会产生好的旧错误:Collection was of a fixed size.。
我尝试了其他几个但不再有代码,MAC 有效并且在列表中,并通过保存和检查验证了这一点。
这里有一些例子XML
我需要使用 XML,因为 API 只支持它,我真的碰壁了,希望得到一些帮助:)
【问题讨论】:
-
$Request的类型是什么。$Request.GetType()? -
似乎很奇怪,首先您过滤
$Request以不具有值为"00:00:00:00:00:00"的元素.mac,然后再循环请求以找到删除这些元素(即$Request 中不存在,因为您已将它们过滤掉..) -
文档类型是Xml Document,我不控制这个api,需要保持文档的结构,不能只取出mac数组
标签: .net xml powershell