[英]Parse XML file in Powershell
I am trying to retrieve Exchange Rates from Yahoo 我正在尝试从Yahoo检索汇率
$browser = New-Object System.Net.WebClient
$browser.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials
$url = 'http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote'
$xml = New-Object xml
$xml.Load($url)
[xml]$YahooDataDocument = $xml.InnerXml
$YahooDataDocument.List.resources.resource | format-table name,price
But I am unable to get the data as required, I only get: 但是我无法获得所需的数据,只能得到:
Name price ---- ----- resource resource resource resource resource . . ..
Try this: 尝试这个:
$browser = New-Object System.Net.WebClient
$browser.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials
$url = 'http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote'
[xml]$xml = $browser.DownloadString($url)
$resultset = New-Object System.Collections.ArrayList
foreach ($quote in $xml.list.resources.resource){
$singlequote = New-Object System.Collections.Specialized.OrderedDictionary
foreach($element in $quote.field){
$singlequote.Add($element.name,$element.'#text')
}
$resultset += New-Object PSObject -Property $singlequote
}
$resultset | format-table
Thing is when you are getting $xml.list.resources.resource it comes as System.Array so you need to deal with every object separately. 问题是当您获得$ xml.list.resources.resource时,它作为System.Array出现,因此您需要分别处理每个对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.