Mit Powershell mehrere XML in eine CSV konvertierten
Guten Tag,
ich benötige bei nachfolgendem Skript nochmal Eure Hilfe. Ich konvertiere mit nachfolgender Skript eine XML in eine CSV:
Allerdings sind im Eingangsordner mehrere XML Dateien (unterschiedliche Dateinamen) vorhanden die nacheinander Zeilenweise in die CSV geschrieben werden sollen.
In jeder XML können mehrere Zeilen enthalten sein. Siehe unten.
Wie muss ich das anpassen?
ich benötige bei nachfolgendem Skript nochmal Eure Hilfe. Ich konvertiere mit nachfolgender Skript eine XML in eine CSV:
$ordner = 'D:\bestellungen'
ls $ordner -File -Filter *.xml | %{
$xml = New-Object XML
$xml.Load($_.FullName)
($xml.TransferFile.Bestellungen.ABL | select Belegnummer,Bestellreferenz,Zustelldatum | ConvertTo-CSV -Delimiter ";" -NoType) -replace '$',';' | out-file (join-path $ordner "abl.csv") -Encoding UTF8
}
Allerdings sind im Eingangsordner mehrere XML Dateien (unterschiedliche Dateinamen) vorhanden die nacheinander Zeilenweise in die CSV geschrieben werden sollen.
In jeder XML können mehrere Zeilen enthalten sein. Siehe unten.
Wie muss ich das anpassen?
<TransferFile>
KundenNummer>22932</KundenNummer>
<RueckmeldeDatum>2020-09-24T09:14:11+01:00</RueckmeldeDatum>
<Bestellungen>
<ABL>
</ABL>
<ABL>
</ABL>
<ABL>
</ABL>
<ABL>
</ABL>
<ABL>
<BelegNummer>12345</BelegNummer>
<Bestellreferenz>7213508</Bestellreferenz>
<Zustelldatum>24.08.2020</Zustelldatum>
<Spedtion>
<Name>Trans-O-Flex</Name>
<Referenznummer>338182</Referenznummer>
</Spedtion>
<image>
<imagename>000000114003438.TIF</imagename>
<content>
</content>
</image>
</ABL>
<ABL>
<BelegNummer>123456</BelegNummer>
<Bestellreferenz>72135084</Bestellreferenz>
<Zustelldatum>24.08.2020</Zustelldatum>
<Spedtion>
<Name>Trans-O-Flex</Name>
<Referenznummer>338182</Referenznummer>
</Spedtion>
<image>
<imagename>000000114003438.TIF</imagename>
<content>
</content>
</image>
</ABL>
<Bestellung>
<BelegNummer>54234567</BelegNummer>
<Bestellreferenz>7268105</Bestellreferenz>
<LieferDatum>2020-09-01T14:01:42+01:00</LieferDatum>
<Spedition>
<Name>Trans-O-Flex</Name>
<Referenznummer>401505</Referenznummer>
</Spedition>
<PDF>
<PdfDateiname>76543456pdf</PdfDateiname>
<content>
</content>
</PDF>
<Positionen>
<Position>
<PositionsNummer>1</PositionsNummer>
<PZN>xxx</PZN>
<ErsatzArtikel>false</ErsatzArtikel>
<Menge>6</Menge>
<Bezeichnung>xxx</Bezeichnung>
<Bestellreferenz/>
</Position>
</Positionen>
</Bestellung>
<Bestellung>
<BelegNummer>542345678</BelegNummer>
<Bestellreferenz>72681058</Bestellreferenz>
<LieferDatum>2020-09-01T14:01:42+01:00</LieferDatum>
<Spedition>
<Name>Trans-O-Flex</Name>
<Referenznummer>4015045</Referenznummer>
</Spedition>
<PDF>
<PdfDateiname>76543456pdf</PdfDateiname>
<content>
</content>
</PDF>
<Positionen>
<Position>
<PositionsNummer>1</PositionsNummer>
<PZN>xxx</PZN>
<ErsatzArtikel>false</ErsatzArtikel>
<Menge>6</Menge>
<Bezeichnung>xxx</Bezeichnung>
<Bestellreferenz/>
</Position>
</Positionen>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
<Bestellung>
</Bestellung>
</Bestellungen>
</TransferFile>
Please also mark the comments that contributed to the solution of the article
Content-Key: 620145
Url: https://administrator.de/contentid/620145
Printed on: April 28, 2024 at 17:04 o'clock
1 Comment
Wie muss ich das anpassen?
$ordner = 'D:\bestellungen'
(ls $ordner -File -Filter *.xml | %{
$xml = New-Object XML
$xml.Load($_.FullName)
$xml.TransferFile.Bestellungen.ABL | select Belegnummer,Bestellreferenz,Zustelldatum
} | ConvertTo-CSV -Delimiter ";" -NoType) -replace '$',';' | out-file (join-path $ordner "abl.csv") -Encoding UTF8