2015-07-28 41 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