gelöst 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:
01.
<?xml version="1.0" encoding="ISO-8859-1"?>
02.
<ERGEBNISSE>
03.
<CALC>
04.
<MANDANT/>
05.
<ARTNO>1234567</ARTNO>
06.
<ORDERNO/>
07.
<PRAEFERENZ>1</PRAEFERENZ>
08.
<PRODCOU>DE</PRODCOU>
09.
<SELLCOU>TN</SELLCOU>
10.
<DATUM>01.01.2017</DATUM>
11.
<UHRZEIT>10:50:21</UHRZEIT>
12.
<AWRUL>DE</AWRUL>
13.
<PREFUL>DE</PREFUL>
14.
<EXWPREIS>36,57</EXWPREIS>
15.
<PPER>1</PPER>
16.
<MINEXWPREIS>0,075</MINEXWPREIS>
17.
</CALC>
18.
<CALC>
19.
<MANDANT/>
20.
<ARTNO>1234567</ARTNO>
21.
<ORDERNO/>
22.
<PRAEFERENZ>1</PRAEFERENZ>
23.
<PRODCOU>DE</PRODCOU>
24.
<SELLCOU>XC</SELLCOU>
25.
<DATUM>01.01.2017</DATUM>
26.
<UHRZEIT>10:50:21</UHRZEIT>
27.
<AWRUL>DE</AWRUL>
28.
<PREFUL>DE</PREFUL>
29.
<EXWPREIS>36,57</EXWPREIS>
30.
<PPER>1</PPER>
31.
<MINEXWPREIS>0,075</MINEXWPREIS>
32.
</CALC>
33.
<CALC>
34.
<MANDANT/>
35.
<ARTNO>1234567</ARTNO>
36.
<ORDERNO/>
37.
<PRAEFERENZ>1</PRAEFERENZ>
38.
<PRODCOU>DE</PRODCOU>
39.
<SELLCOU>XL</SELLCOU>
40.
<DATUM>01.01.2017</DATUM>
41.
<UHRZEIT>10:50:21</UHRZEIT>
42.
<AWRUL>DE</AWRUL>
43.
<PREFUL>DE</PREFUL>
44.
<EXWPREIS>36,57</EXWPREIS>
45.
<PPER>1</PPER>
46.
<MINEXWPREIS>0,075</MINEXWPREIS>
47.
</CALC>
48.
<CALC>
49.
<MANDANT/>
50.
<ARTNO>1234567</ARTNO>
51.
<ORDERNO/>
52.
<PRAEFERENZ>1</PRAEFERENZ>
53.
<PRODCOU>DE</PRODCOU>
54.
<SELLCOU>XS</SELLCOU>
55.
<DATUM>01.01.2017</DATUM>
56.
<UHRZEIT>10:50:21</UHRZEIT>
57.
<AWRUL>DE</AWRUL>
58.
<PREFUL>DE</PREFUL>
59.
<EXWPREIS>36,57</EXWPREIS>
60.
<PPER>1</PPER>
61.
<MINEXWPREIS>0,075</MINEXWPREIS>
62.
</CALC>
63.
</ERGEBNISSE>
Alsa DAteiname wäre es schön eine Kombination aus ARTNO_PRODCOU_SELLCOU zu bekommen.
Datei 1 (1234567_DE_TN.xml):
01.
<?xml version="1.0" encoding="ISO-8859-1"?>
02.
<ERGEBNISSE>
03.
<CALC>
04.
<MANDANT/>
05.
<ARTNO>1234567</ARTNO>
06.
<ORDERNO/>
07.
<PRAEFERENZ>1</PRAEFERENZ>
08.
<PRODCOU>DE</PRODCOU>
09.
<SELLCOU>TN</SELLCOU>
10.
<DATUM>01.01.2017</DATUM>
11.
<UHRZEIT>10:50:21</UHRZEIT>
12.
<AWRUL>DE</AWRUL>
13.
<PREFUL>DE</PREFUL>
14.
<EXWPREIS>36,57</EXWPREIS>
15.
<PPER>1</PPER>
16.
<MINEXWPREIS>0,075</MINEXWPREIS>
17.
</CALC>
18.
</ERGEBNISSE>
01.
<?xml version="1.0" encoding="ISO-8859-1"?>
02.
<ERGEBNISSE>
03.
<CALC>
04.
<MANDANT/>
05.
<ARTNO>1234567</ARTNO>
06.
<ORDERNO/>
07.
<PRAEFERENZ>1</PRAEFERENZ>
08.
<PRODCOU>DE</PRODCOU>
09.
<SELLCOU>XC</SELLCOU>
10.
<DATUM>01.01.2017</DATUM>
11.
<UHRZEIT>10:50:21</UHRZEIT>
12.
<AWRUL>DE</AWRUL>
13.
<PREFUL>DE</PREFUL>
14.
<EXWPREIS>36,57</EXWPREIS>
15.
<PPER>1</PPER>
16.
<MINEXWPREIS>0,075</MINEXWPREIS>
17.
</CALC>
18.
</ERGEBNISSE>
Die einzelnen Nodes mir ausgeben zu lassen habe ich hinbekommen.
01.
([xml](Get-Content "Ergebnis_14031-0163.xml")).SelectNodes("//CALC")
G LianenSchwinger
2 Antworten
- LÖSUNG 132692 schreibt am 16.03.2017 um 16:31:38 Uhr
- LÖSUNG LianenSchwinger schreibt am 16.03.2017 um 16:44:34 Uhr
LÖSUNG 16.03.2017, aktualisiert um 18:06 Uhr
Z.B. so
p.
01.
$xml = [xml](Get-Content "Ergebnis_14031-0163.xml")
02.
$xml.SelectNodes("//CALC") | %{
03.
$name = $_.Mandant.Artno + "_" + $_.prodcou + "_" + $_.sellcou + ".xml"
04.
"<?xml version=`"1.0`" encoding=`"ISO-8859-1`"?><ERGEBNISSE>$($_.outerXML)</ERGEBNISSE>" | set-content $name
05.
}
LÖSUNG 16.03.2017 um 16:44 Uhr
Hallo pattern,
danke für Dein Script musste nur den Dateistring abändern damit es läuft.
in
Danke und Gruß
LianenSchwinger
danke für Dein Script musste nur den Dateistring abändern damit es läuft.
01.
$name = $_.Mandant.Artno.value + "_" + $_.prodcou.value + "_" + $_.sellcou.value + ".xml"
01.
$name = $_.ARTNO + "_" + $_.PRODCOU + "_" + $_.SELLCOU + ".xml"
Danke und Gruß
LianenSchwinger
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte