XML Datei mit Powershell splitten
Hallo,
ich habe eine riesige Exportdatei im XML-Format die ich nicht weiterverarbeiten kann.
Der Aufbau ist wie folgt:
Ich benötige ein Powershell-Script welches die Datei splittet, so dass pro Datei ein Node vom Typ CALC enthalten ist.
Alsa DAteiname wäre es schön eine Kombination aus ARTNO_PRODCOU_SELLCOU zu bekommen.
Datei 1 (1234567_DE_TN.xml):
Datei 2 (1234567_DE_XC.xml):
usw.
Die einzelnen Nodes mir ausgeben zu lassen habe ich hinbekommen.
Da ich blutiger Anfänger bin reicht es leider nicht für den Rest.
G LianenSchwinger
ich habe eine riesige Exportdatei im XML-Format die ich nicht weiterverarbeiten kann.
Der Aufbau ist wie folgt:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ERGEBNISSE>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>TN</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>XC</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>XL</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>XS</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
</ERGEBNISSE>
Ich benötige ein Powershell-Script welches die Datei splittet, so dass pro Datei ein Node vom Typ CALC enthalten ist.
Alsa DAteiname wäre es schön eine Kombination aus ARTNO_PRODCOU_SELLCOU zu bekommen.
Datei 1 (1234567_DE_TN.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<ERGEBNISSE>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>TN</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
</ERGEBNISSE>
Datei 2 (1234567_DE_XC.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<ERGEBNISSE>
<CALC>
<MANDANT/>
<ARTNO>1234567</ARTNO>
<ORDERNO/>
<PRAEFERENZ>1</PRAEFERENZ>
<PRODCOU>DE</PRODCOU>
<SELLCOU>XC</SELLCOU>
<DATUM>01.01.2017</DATUM>
<UHRZEIT>10:50:21</UHRZEIT>
<AWRUL>DE</AWRUL>
<PREFUL>DE</PREFUL>
<EXWPREIS>36,57</EXWPREIS>
<PPER>1</PPER>
<MINEXWPREIS>0,075</MINEXWPREIS>
</CALC>
</ERGEBNISSE>
usw.
Die einzelnen Nodes mir ausgeben zu lassen habe ich hinbekommen.
([xml](Get-Content "Ergebnis_14031-0163.xml")).SelectNodes("//CALC")
Da ich blutiger Anfänger bin reicht es leider nicht für den Rest.
G LianenSchwinger
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 332334
Url: https://administrator.de/contentid/332334
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
2 Kommentare
Neuester Kommentar
Z.B. so
p.
$xml = [xml](Get-Content "Ergebnis_14031-0163.xml")
$xml.SelectNodes("//CALC") | %{
$name = $_.Mandant.Artno + "_" + $_.prodcou + "_" + $_.sellcou + ".xml"
"<?xml version=`"1.0`" encoding=`"ISO-8859-1`"?><ERGEBNISSE>$($_.outerXML)</ERGEBNISSE>" | set-content $name
}