.net 正在读取ArrayList中的项
我们得到了如下相同的XML:.net 正在读取ArrayList中的项,.net,xml,powershell,xpath,arraylist,.net,Xml,Powershell,Xpath,Arraylist,我们得到了如下相同的XML: <?xml version="1.0" encoding="utf-8"?> <Configuration> <Format_Version>1.0</Format_Version> <Reporting> </Reporting> <Jobs> <Job> <Name>SpaceCheck<
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<Format_Version>1.0</Format_Version>
<Reporting>
</Reporting>
<Jobs>
<Job>
<Name>SpaceCheck</Name>
<Job_Type>SpaceCheck</Job_Type>
<Schedule>
<Start_Time>0300</Start_Time>
<Frequency>24 hours</Frequency>
<Max_Run_Time_In_Seconds>10</Max_Run_Time_In_Seconds>
</Schedule>
<Parameters>
<Drive>C</Drive>
<Drive>D</Drive>
</Parameters>
</Job>
<Job>
<Name>CPUCheck</Name>
<Job_Type>UsageMonitor</Job_Type>
<Schedule>
<Frequency>3 minutes</Frequency>
</Schedule>
<Parameters>
<Threshold>90%</Threshold>
<Duration>10 minutes</Duration>
</Parameters>
</Job>
<Job>
<Name>overloaded CPUCheck</Name>
<Job_Type>CPUcheck2</Job_Type>
<Schedule>
<Frequency>3 minutes</Frequency>
</Schedule>
<Parameters>
<Threshold>80%</Threshold>
<Duration>50 minutes</Duration>
</Parameters>
</Job>
<Job>
<Name>Connection</Name>
<Job_Type>Connectivity</Job_Type>
<Schedule>
<Start_Time>1900</Start_Time>
<Frequency>1</Frequency>
<Maximum_Runtime>30</Maximum_Runtime>
</Schedule>
<Parameters>
<ToErrInHours>1</ToErrInHours>
<Days>1</Days>
<Threshold>70</Threshold>
</Parameters>
</Job>
</Jobs>
</Configuration>
不确定为什么希望SelectNodes方法处理$item-它是一个字符串,是来自$\的结果。InnerText,请检查以下代码:
foreach ($item in $xdoc.Configuration.Jobs.job | % { $_.InnerText })
#| Where-Object {$_.Name }
{
$item | Get-Member -MemberType Method -Name Select*
$item -is [String]
}
我建议改用Select Xml cmdlet:
Select-Xml -Xml $xdoc -XPath //Job |
ForEach-Object { $null = $JobName.Add($_.Node.Name) }
非常感谢你。他们两个都在工作。我对PowerShell和编程也是新手。曾担任手工QA,刚加入自动化程序员团队。
Select-Xml -Xml $xdoc -XPath //Job |
ForEach-Object { $null = $JobName.Add($_.Node.Name) }