2016-10-06 37 views
0

說我有這樣的XML:PowerShell的 - 在指數收益率節點無論哪種類型

$xml = [xml]@' 
    <messages> 
     <message name="Advertisement" msgtype="7" msgcat="app"> 
     <field name="AdvId" required="Y" /> 
     <field name="AdvTransType" required="Y" /> 
     <field name="AdvRefID" required="N" /> 
     <component name="Instrument" required="Y" /> 
     <component name="Balls" required="Y" /> 
     <field name="AdvSide" required="Y" /> 
     <field name="Quantity" required="Y" /> 
     </message> 
    </messages> 
'@ 

我希望下面的結果,但不會返回任何:

$xml.messages.message[1] # should return <field name="AdvTransType" required="Y" /> 
$xml.messages.message[3] # should return <component name="Instrument" required="Y" /> 

是否有一個功能我失蹤?我想通過索引來訪問節點...

PowerShell的版本:6.0.0 alpha

+0

DERP。謝謝@wOxxOm !!。應該直接開始ping你直接回答我的問題:)。如果你創建一個答案,我會接受它。 – daino3

回答

1

在命名節點符號XML樹返回指定節點的數組,以便message[1]意味着第二message但你只有一個message

爲了通過索引來訪問所述子節點,而不管類型的使用一個特殊的屬性ChildNodes

$xml.messages.message.ChildNodes[1] 
name   required 
----   -------- 
AdvTransType Y 
0

嘗試:

$xml.messages.message.field[1] 
$xml.messages.message.field[2] 
+0

問題標題說'不管類型'。 – wOxxOm