Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单XML脚本正在消耗所有可用内存_Xml_Powershell_Optimization - Fatal编程技术网

简单XML脚本正在消耗所有可用内存

简单XML脚本正在消耗所有可用内存,xml,powershell,optimization,Xml,Powershell,Optimization,我试图创建一个简单的脚本,为每个ip地址添加一个新的代理。 脚本先到达id125,然后再减速到绝对爬网。我不知道为什么它会消耗这么多内存,有人能帮我优化我在这里做的事情吗 $xml = New-Object -TypeName XML $xml.Load($Path) $ipAddresses = Get-Content "D:\Downloads\ipaddresses.txt" $proxy = ($xml.ProxifierProfile.ProxyList.Proxy

我试图创建一个简单的脚本,为每个ip地址添加一个新的代理。 脚本先到达id125,然后再减速到绝对爬网。我不知道为什么它会消耗这么多内存,有人能帮我优化我在这里做的事情吗

$xml = New-Object -TypeName XML
$xml.Load($Path)
$ipAddresses = Get-Content "D:\Downloads\ipaddresses.txt"
$proxy = ($xml.ProxifierProfile.ProxyList.Proxy[0])
$counter = 102
foreach($ipAddress in $ipAddresses){
$newproxy = $proxy.CloneNode($true)  
$newproxy.id = [string](++$counter)
$newproxy.Address = [string]$ipAddress
$proxy.AppendChild($newproxy)
}

$newpath = "c:\temp\newfile.ppx"
$xml.Save($newpath)

已经开始工作了,谢谢。不知道为什么AppendChild和insertafter的工作方式不一样

$xml = New-Object -TypeName XML
$xml.Load($Path)
$ipAddresses = Get-Content "D:\Downloads\ipaddresses.txt"
$newpath = "c:\temp\newfile.ppx"
$proxy = ($xml.ProxifierProfile.ProxyList.Proxy[-1])
$counter = 101

foreach($ipAddress in $ipAddresses){
$newproxy = $proxy.CloneNode($true) 
$newproxy.id = [string](++$counter)
$newproxy.Address = [string]$ipAddress
$Latestproxy = $xml
$proxy.ParentNode.InsertAfter($newproxy,$proxy)
}


$xml.Save($newpath)

尝试使用较短的循环,并查看生成的XML。我认为您的逻辑中有一个错误。我怀疑您会发现,如果您仅使用一个简短的IP地址列表来尝试此操作,您会发现它并没有达到您预期的效果……”“不确定为什么AppendChild和insertafter不能以类似方式工作。”它们都完全按照自己的名字执行:
AppendChild
将一个子元素添加到您调用它的元素中
InsertAfter
在给定目标(第二个参数)后添加新元素。