itallrounder
Goto Top

Powershell XML Datei aufsplitten

Mahlzeit zusammen,

ich stehe hier gerade vor einem kleinen PowerShell Dilemma und habe keinen Ansatz.
Es geht darum, dass ich eine XML Datei aus der "Datev EMA Archivierung" exportiert habe, um die Mails nun nach MailStore zu bekommen.
Da es sich hier um ein paar Datensätze handelt, würde ich das gerne Schritt für Schritt machen und die Arbeit "mit loggen".

Die XML sieht wie folgt aus:


<?xml version="1.0" encoding="utf-8"?>  
<export>
  <server>EMA Server</server>
  <mailCount>3238108</mailCount>
  <mailboxes>
<mailbox><logonName>Vorname.Nachname</logonName>
      <userMailAddress>Vorname.Nachname@domain.tld</userMailAddress>
      <mailboxMailCount>11609</mailboxMailCount>
      <mails>
<mail><id>E94F571956F84604B885C31FF8380BD8</id><parentFolder>Posteingang/Projekte/BlaBlaBLa/parentFolder><archiveYear>2018</archiveYear><archiveDate>2018-12-31</archiveDate><dokuNr>3229788</dokuNr><archived>false</archived></mail>
</mails>
    </mailbox>

<mailbox><logonName>Vorname.Nachname</logonName>
      <userMailAddress>Vorname.Nachname@domain.tld</userMailAddress>
      <mailboxMailCount>11609</mailboxMailCount>
      <mails>

</mails>
</mailbox>


Wiederholen tut sich immer der Teil:

<mailbox><logonName>Vorname.Nachname</logonName>
      <userMailAddress>Vorname.Nachname@domain.tld</userMailAddress>
      <mailboxMailCount>11609</mailboxMailCount>
      <mails>
<mail><id>E94F571956F84604B885C31FF8380BD8</id><parentFolder>Posteingang/Projekte/BlaBlaBLa/parentFolder><archiveYear>2018</archiveYear><archiveDate>2018-12-31</archiveDate><dokuNr>3229788</dokuNr><archived>false</archived></mail>
</mails>
    </mailbox>

Das ganze XML File hat ca 3.5 Mio Zeilen.

Folgendes würde ich gerne umsetzten:

Pro Mitarbeiter eine XML Datei erzeugen mit dem folgenden Inhalt:

<?xml version="1.0" encoding="utf-8"?>  
<export>
  <server>EMA Server</server>
  <mailCount>3238108</mailCount>
  <mailboxes>
<mailbox><logonName>Vorname.Nachname</logonName>
      <userMailAddress>Vorname.Nachname@domain.tld</userMailAddress>
      <mailboxMailCount>11609</mailboxMailCount>
      <mails>
<mail><id>E94F571956F84604B885C31FF8380BD8</id><parentFolder>Posteingang/Projekte/BlaBlaBLa/parentFolder><archiveYear>2018</archiveYear><archiveDate>2018-12-31</archiveDate><dokuNr>3229788</dokuNr><archived>false</archived></mail>
</mails>
    </mailbox>

zzgl dazu wäre auch noch folgendes sehr hilfreich:

Eine CSV Datei mit dem Inhalt:
LogonName; DokuNr; ID; archived [true/false]


Bekommt das ein Powershell Anfänger wie ich hin? Bin auch gerne bereit ein Skript für einen kleines "Obulus" zu erwerben.

Ganz herzliche Grüße

Content-ID: 572769

Url: https://administrator.de/contentid/572769

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

erikro
erikro 18.05.2020 um 14:39:44 Uhr
Goto Top
Moin,

leider habe ich keine Zeit, darauf genauer einzugehen. Deshalb erstmal nur ein Link:
https://www.langlitz-it.de/?p=1297

Viel Spaß beim Ausprobieren. Wenn's nicht klappt, dann melde Dich wieder.

hth

Erik
ITAllrounder
ITAllrounder 19.05.2020 um 06:34:25 Uhr
Goto Top
Moin,

danke für den Link, aber in meinem Fall ist das keine Hilfe.
Ich habe weder große Erfahrungen mit Powershell noch mit XML Dateien.

Es scheitert schon daran, wie ich den jeweiligen Wert aus dem Feld "LogonName" oder "userMailaddress" exportiert bekomme....