如何将每个URL的值导出到不同的XML文件



我有一个脚本可以从多个URL:s中获取API数据(我无法获取所有数据,因为它仅限于特定数量(我可以使用Transcript将所有URL中的所有数据导出到一个文件中(100页,每页1000篇文章(。但我们需要将一个URL中的所有数据导出到一个文件,并将下一个URL导出到另一个文件等。我试着用下面的代码来准备这个操作,但我得到了两个文件(使用两个URL:s(,但所有数据都在第一个文件中。不太确定如何解决这个问题。

Import-Module pscx
function Ignore-SelfSignedCerts
{
try
{
#Write-Host "Adding TrustAllCertsPolicy type." -ForegroundColor White
Add-Type -TypeDefinition  @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy
{
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem)
{
return true;
}
}
"@
#Write-Host "TrustAllCertsPolicy type added." -ForegroundColor White
}
catch
{
#Write-Host $_ -ForegroundColor "Yellow"
}
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
}
Ignore-SelfSignedCerts
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$Uri = "https://prime/webacs/api/v1/data/Clients?.firstResult=0&.maxResults=1&.full=true,
https://prime/webacs/api/v1/data/Clients?.firstResult=2&.maxResults=1&.full=true"
$separator = ","
$urlList = $Uri.Split($separator, $option)
function Get-BasicAuthCreds {
param([string]$Username,[string]$Password)
$AuthString = "{0}:{1}" -f $Username,$Password
$AuthBytes  = [System.Text.Encoding]::Ascii.GetBytes($AuthString)
return [Convert]::ToBase64String($AuthBytes)
}
$BasicCreds = Get-BasicAuthCreds -Username "User" -Password "Password"
$StartNum = 0
$Result = $null
$Result = foreach ($url in $urlList){
Start-Transcript -Path "C:DataURL$StartNum.xml"
$DataURL = Invoke-WebRequest -Uri $url -Headers @{"Authorization"="Basic $BasicCreds"}
Write-Host $DataURL
# Give feedback on how far we are
Write-Host ("Initiated request for {0}" -f $url)  
$StartNum++
cls
Stop-Transcript
$DataURL = $null
}

我设法解决了它。我需要将Web请求中的数据放入一个变量中,每次循环结束时都会清除该变量。以上代码已更新。

最新更新