2012-07-05 72 views
6

我有这个数据如何通过PowerShell从xml获取值?

<?xml version="1.0" encoding="windows-1251" ?> 
<ValCurs Date="06/06/2012" name="Курби асъор"> 
<Valute ID="036"> 
    <CharCode>AUD</CharCode> 
    <Nominal>1</Nominal> 
    <Name>Доллари Австралия</Name> 
    <Value>4,6430</Value> 
    </Valute> 
<Valute ID="944"> 
    <CharCode>AZN</CharCode> 
    <Nominal>1</Nominal> 
    <Name>Манати Озарбой&#1207;он</Name> 
    <Value>6,0677</Value> 
    </Valute> 
<Valute ID="826"> 
    <CharCode>GBP</CharCode> 
    <Nominal>1</Nominal> 
    <Name>Фунт-стерлинги Ингилистон</Name> 
    <Value>7,3156</Value> 
    </Valute> 
... 

我怎么能在“名义”和“价值”获得的数据由“Valute ID =‘826’”标准的XML文件 对不起,我英语

回答

18

你可以简单地通过铸造字符串[xml]读取XML:

$xml = [xml](Get-Content foo.xml) 

然后你可以使用

$xml.ValCurs.Valute | Where-Object {$_.ID -eq 826} | Select-Object Nominal,Value 

或更短:

$xml.ValCurs.Valute | ? {$_.ID -eq 826} | select Nominal,Value