ich Daten, die aus einer XML-Datei und wollen ein Objekt wie folgt erhalten:Powershell: XML Object
TaskSequenceNumber TaskSequenceName
------------------ ----------------
1 01_Base
2 02_ABC
Die XML-Datei wie folgt aussieht:
$xml = [xml]@"
<?xml version="1.0" encoding="utf-8"?>
<DeploymentScript>
<Settings>
...
</Settings>
<TaskSequences>
<Sequence1>
<TaskSequenceNumber>1</TaskSequenceNumber>
<TaskSequenceName>01_Base</TaskSequenceName>
</Sequence1>
<Sequence2>
<TaskSequenceNumber>2</TaskSequenceNumber>
<TaskSequenceName>02_ABC</TaskSequenceName>
</Sequence2>
</TaskSequences>
</DeploymentScript>
"@
$xml.DeploymentScript.TaskSequences
Der Code oben ist für einfache Kopie vorbereitet & einfügen in ISE, wenn jemand es versuchen möchte. Über den Namen der Knoten Sequence1
und Sequence2
bin ich mir noch nicht sicher. Vielleicht könnten sie in $TaskSequenceName
oder $TaskSequenceNumber
umbenannt werden.
.
EDIT:
Ich bin wirklich leid, aber ich brauche meine Bitte um es wieder zu öffnen. Ich habe versucht, die veröffentlichte Lösung von Martin zu implementieren, aber ich kam in Schwierigkeiten. Sehen Sie sich das folgende Beispiel an:
Clear-Host
Function Simple-Test {
Param
(
[Parameter(Mandatory=$true,position=0)]
[string]$ControlObject
)
$ControlObject | Format-Table
}
$xml = [xml]@"
<?xml version="1.0" encoding="utf-8"?>
<DeploymentScript>
<Settings>
...
</Settings>
<TaskSequences>
<Sequence1>
<TaskSequenceNumber>1</TaskSequenceNumber>
<TaskSequenceName>01_Base</TaskSequenceName>
</Sequence1>
<Sequence2>
<TaskSequenceNumber>2</TaskSequenceNumber>
<TaskSequenceName>02_ABC</TaskSequenceName>
</Sequence2>
</TaskSequences>
</DeploymentScript>
"@
Simple-Test -ControlObject $xml.DeploymentScript.TaskSequences.GetEnumerator()
Das Skript wird nicht funktionieren, wie ich es erwarten würde. Ich bekomme das Ergebnis:
System.Xml.XmlElement System.Xml.XmlElement
Wie dies zu korrigieren?
Vielen Dank!
Remove '[string]' in Zeile 6 –
OMG :-) Danke! – Walhalla
Gern geschehen –