XML File 1 Zeile ausschneiden
Hallo zusammen,
ich habe eine Frage zu dem Thema Powershell, so fit bin ich darin nicht. Folgenden Code habe ich um die erste Zeile aus allen XML Dateien auszuschneiden.
Folgendes Problem habe ich, ich möchte vorher in jedem File prüfen, ob in der ersten Zeile 1TRANS steht.
Wenn dort 1TRANS steht, soll diese Zeile ausgeschnitten werden und die Datei gespeichert werden.
Steht in der ersten Zeile kein 1TRANS, dann soll die Datei unbehandelt bleiben.
kann mir hier jemand helfen ?
Zur Info, so sieht der Inhalt eines XML Files aus, die erste Zeile soll entfernt werden, wenn sie vorhanden ist
1TRANS20200130 100GTR XML Download XXX0001 10298310004 0000000016DTCCCDT 20200130 11:35 TTT 20200130 11:35
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:auth.yyy.xxx.zz"
<FinInstrmRptgStsAdvc>
<StsAdvc>
<MsgRptIdr>RL101xx579368</MsgRptIdr>
Gruß Epsodus
ich habe eine Frage zu dem Thema Powershell, so fit bin ich darin nicht. Folgenden Code habe ich um die erste Zeile aus allen XML Dateien auszuschneiden.
Folgendes Problem habe ich, ich möchte vorher in jedem File prüfen, ob in der ersten Zeile 1TRANS steht.
Wenn dort 1TRANS steht, soll diese Zeile ausgeschnitten werden und die Datei gespeichert werden.
Steht in der ersten Zeile kein 1TRANS, dann soll die Datei unbehandelt bleiben.
kann mir hier jemand helfen ?
$file = "$XXXX_ROOT\*.xml"
Get-ChildItem -Path $file -File -Filter *.xml |
ForEach-Object {
(Get-Content -Path $_.FullName | Select-Object -Skip 1) | Set-Content -Path $_.FullName -Encoding UTF8
Zur Info, so sieht der Inhalt eines XML Files aus, die erste Zeile soll entfernt werden, wenn sie vorhanden ist
1TRANS20200130 100GTR XML Download XXX0001 10298310004 0000000016DTCCCDT 20200130 11:35 TTT 20200130 11:35
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:auth.yyy.xxx.zz"
<FinInstrmRptgStsAdvc>
<StsAdvc>
<MsgRptIdr>RL101xx579368</MsgRptIdr>
Gruß Epsodus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 564872
Url: https://administrator.de/forum/xml-file-1-zeile-ausschneiden-564872.html
Ausgedruckt am: 30.04.2025 um 18:04 Uhr
4 Kommentare
Neuester Kommentar

$file = "$XXXX_ROOT\*.xml"
Get-ChildItem -Path $file -File -Filter *.xml | %{
$text = gc $_.Fullname
@{$true=($text | select -Skip 1);$false = $text}[($text[0] -like '*1TRANS*')] | Set-Content -Path $_.FullName -Encoding UTF8
}

Nö es wird nur eine Zeile entfernt, siehst du ja daran
!
In deinem Fall steht bei dir der Text vor dem XML Tag zusammen in einer Zeile!
Mach es einfach so dann ist das mit den Zeilen egal und es wird nur das reine XML extrahiert
($text | select -Skip 1)
In deinem Fall steht bei dir der Text vor dem XML Tag zusammen in einer Zeile!
Mach es einfach so dann ist das mit den Zeilen egal und es wird nur das reine XML extrahiert
$file = "$XXXX_ROOT\*.xml"
Get-ChildItem -Path $file -File -Filter *.xml | %{
[regex]::match((gc $_.Fullname -raw),'(?ism)<\?xml.*').Value | Set-Content -Path $_.FullName -Encoding UTF8
}