Hallo Ich bin neu in Powershell, aber ich habe überall nach einer Antwort auf diese Frage, wie konvertiere ich XML-Daten in CSV-Daten in Powershell?Convert xml in csv in Power-Shell
Hier ist meine XML-Datei:
<users>
<user>
<id>"data"</id>
<name>"data"</name>
<disabled>"data"</disabled>
<title>"data"</title>
<email>"data"</email>
<role>
<name>"data"</name>
</role>
<custom_fields_values>
<custom_fields_value>
<custom_field_id>60019</custom_field_id>
<value>"data"</value>
</custom_fields_value>
<custom_fields_value>
<custom_field_id>60021</custom_field_id>
<value>"data"</value>
</custom_fields_value>
<custom_fields_value>
<custom_field_id>60018</custom_field_id>
<value>"data"</value>
</custom_fields_value>
</custom_fields_values>
<site>
<name>"data"</name>
</site>
</user>
</users>
Die Felder, die mehrere Ebenen in dem Baum sind der größte Schmerz sind. Hier ist das Skript, das ich bisher gefunden habe. Ich kann die grundlegenden Felder wie Name und E-Mail abrufen. Ich brauche wirklich die Felder, die benutzerdefinierte Felder und ihre Untergruppen bezeichnet werden.
#Converts the xml to a CSV file
$samage_users.users.user | select-Object @(
@{l="Email";e={$_.email}},
@{l="Name";e={$_.name}},
@{l="ID";e={$_.ID}},
@{l="Phone";e={$_.phone}},
@{l="Site";e={$_.site.name}},
@{l="Reports_To";e={$_.reports_to.name}},
@{l="Reports_To_Email";e={$_.reports_to.email}})|
export-csv "Samanage_users.csv" -NoTypeInformation -Append
$page ++
start-sleep -s 10
}
While ($page -lt ($pages + 2))
}
Function NewUsers
{
foreach ($user in $new_user)
{
CSV-Ausgabedatei sollte in etwa so aussehen. (Siehe beigefügte)
Jede Hilfe wird sehr geschätzt!
Dank
Zeigen Sie auch die gewünschte Ausgabe an. – Tomalak
Ich habe Korrekturen an meinem Beitrag vorgenommen. –
Wirklich? Sie möchten für jedes dieser Felder "CUSTOM FIELD ID" gefolgt von "CUSTOM FIELD VALUE" und nicht nur die Spalte "60019" mit dem entsprechenden Wert? – TheMadTechnician