2015-07-28 44 views
3

我尝试从这样的XML解析XML与2 “值”

<article> 
    <attachments/> 
    <technical> 
    <feature classification="ETIM 5.0" code="EF000889" language="pl" value="EV000074"> 
     <name>Some name</name> 
     <value>1234</value> 
    </feature> 
    <feature classification="ETIM 5.0" code="EF000881" language="pl"> 
     <name>Some name</name> 
     <value>345</value> 
     <unit>A</unit> 
    </feature> 
    </technical> 
</article> 

在PowerShell中我写了选择一个值:

[xml]$p = Invoke-WebRequest -Uri 'https://domain.tld/file.xml' 
$p.article.technical.feature | select code, value, unit 

这项工作几乎完美的,但是当一个功能有自己的价值,我越来越像数组:

code   value    unit 
EF000889  {EV000074, 1234}   
EF000881  345    A 

任何人hav e想法如何获得第二个价值?

+0

$ p.article.technical.feature.value [1]? –

+0

@Kayasax会不会丢弃下一个“功能”的第二个值?也许操作者正在寻找忽略基于属性的值。 – Matt

+0

@Matt是的,我认为这是我想要的 –

回答

0

会为你工作吗?

$p.article.technical.feature |%{ 
    if ($_.value.gettype().fullname -eq "System.Object[]"){$_.value[1]}   
    else{$_.value} 
} 
+1

我会编辑条件,如果($ _。value.gettype()。fullName -eq“System.Object []”)' – Vesper

+0

@Vesper是啊这是我正在寻找的物业。谢谢 –

+0

是的,那方式是好的:) – tomipnh