2016-10-06 13 views
0

sagen, dass ich diese xml haben:Powershell - Return Knoten bei Index unabhängig vom Typ

$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> 
'@ 

ich die Ergebnisse unter erwarten, aber nichts zurückgegeben:

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

Gibt es eine Funktion, die ich bin fehlt? Ich möchte Knoten über den Index für den Zugriff auf ...

Powershell Version: 6.0.0 alpha

+0

Derp. Danke @wOxxOm !!. Sollte gerade anfangen, dich direkt für meine Fragen zu pingen :). Wenn Sie eine Antwort erstellen, akzeptiere ich sie. – daino3

Antwort

1

In XML-Baumknoten Notation namens gibt einen Array des angegebenen Knoten so message[1] bedeutet zweite message aber Sie haben nur eine message.

Um den Unterknoten durch den Index zugreifen, unabhängig von Art, die eine besondere Eigenschaft ChildNodes:

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

versucht es:

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

Der Titel der Frage lautet 'unabhängig vom Typ '. – wOxxOm

Verwandte Themen