Bestimmten Text aus vielen xml-Dateien in einem Ordner mit vielen Unterordnern auslesen und in neuer Text-Datei schreiben
Hallo liebe Batch'ler, Scrip'ler und Programmierer,
ich möchte aus vielen xml-Dateien, die alle in unterschiedlich benannten Unterordnern gespeichert sind, mit folgendem immer gleichem Aufbau:
<?xml version="1.0" encoding="iso-8859-1"?>
<data sig="album.1" lastmod="20141002 095704">
<id uuid="0cb6edf1-0d3e-4e16-8ad6-510dbeb9fc18" sigtoc="" />
<album name="Purple Cadillacs" genre="Folk" year="2013" titlecount="15" wavcount="13"\Purple Cadillacs" />
<artist name="David Munyon" />
nur diesen Text aus jeder xml-Datei auslesen und in einer
neuen Text - Datei wie folgt rein kopieren:
David Munyon - Purple Cadillacs
Al Di Meola - Scenario
Deep Purple - The Book Of Taliesyn
u.s.w.
Das Programm sollte unter Win 7 laufen.
Für den Einsatz eures Gehirnschmalzes bedanke ich schonmal ganz herzlich im Voraus!
Grüße maba1950
ich möchte aus vielen xml-Dateien, die alle in unterschiedlich benannten Unterordnern gespeichert sind, mit folgendem immer gleichem Aufbau:
<?xml version="1.0" encoding="iso-8859-1"?>
<data sig="album.1" lastmod="20141002 095704">
<id uuid="0cb6edf1-0d3e-4e16-8ad6-510dbeb9fc18" sigtoc="" />
<album name="Purple Cadillacs" genre="Folk" year="2013" titlecount="15" wavcount="13"\Purple Cadillacs" />
<artist name="David Munyon" />
nur diesen Text aus jeder xml-Datei auslesen und in einer
neuen Text - Datei wie folgt rein kopieren:
David Munyon - Purple Cadillacs
Al Di Meola - Scenario
Deep Purple - The Book Of Taliesyn
u.s.w.
Das Programm sollte unter Win 7 laufen.
Für den Einsatz eures Gehirnschmalzes bedanke ich schonmal ganz herzlich im Voraus!
Grüße maba1950
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 277195
Url: https://administrator.de/contentid/277195
Ausgedruckt am: 16.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
erstmal: Das ist kein ein valides XML was du da gepostet hast (es kann nur ein DocumentElement geben und nicht mehrere, also hole das nach und bitte mit Codetags.
Ich gehe von folgendem validen XML aus (dein XML hatte kein geschlossens data Tag !:
Mit Powershell ist das dann schnell abgehandelt.
Gruß grexit
erstmal: Das ist kein ein valides XML was du da gepostet hast (es kann nur ein DocumentElement geben und nicht mehrere, also hole das nach und bitte mit Codetags.
Ich gehe von folgendem validen XML aus (dein XML hatte kein geschlossens data Tag !:
<?xml version="1.0" encoding="iso-8859-1"?>
<data sig="album.1" lastmod="20141002 095704">
<id uuid="0cb6edf1-0d3e-4e16-8ad6-510dbeb9fc18" sigtoc="" />
<album name="Purple Cadillacs" genre="Folk" year="2013" titlecount="15" wavcount="13" />
<artist name="David Munyon" />
</data>
$quelle = 'C:\temp\xmlfiles'
$zieldatei = 'C:\temp\interpreten.txt'
gci $quelle -FIlter *.xml -recurse | %{
# XML Datei als Objekt laden
$xml = [xml](gc $_.Fullname | out-string)
# Daten aus der XML-Datei in die neue Datei anhängen
"$($xml.data.artist.name) - $($xml.data.album.name)" | out-file $zieldatei -Append
}
Genau das was du willst macht mein Skript schon out-of-the-box !! Es durchläuft alle Ordner Rekursiv und holt sich aus allen XML-Dateien deine gewünschten Daten und schreibt sie nach deiner Vorlage in eine Textdatei... wo ist also das Problem. Minimal solltest du dich damit schon beschäftigten. Ich fahr ja auch kein Auto ohne Führerschein.
Für eine Anpassung ist es essentiell die korrekte Baumstruktur zu kennen und das ist mit einem kleinen Ausschnitt nur eingeschränkt möglich, daher meine vermutete Struktur.
Du musst bei meinem Skript nur am Anfang den Root-Pfad ab dem das Dateisystem durchsucht werden soll angeben,und in Zeile 2 den Pfad zur Textdatei in die die Daten geschrieben werden. Pfade erkennst du schon oder ?? Habs dir nochmal extra im Code kommentiert.
Wie man Powershell-Skripte ausführt steht hier : http://www.windowspro.de/andreas-kroschel/powershell-scripts-ausfuehren
Mit diesen Infos schafft das jetzt jeder Noob, der zumindest ein Minimum an Hirnschmalz mitbringt.
Gruß grexit
Für eine Anpassung ist es essentiell die korrekte Baumstruktur zu kennen und das ist mit einem kleinen Ausschnitt nur eingeschränkt möglich, daher meine vermutete Struktur.
Du musst bei meinem Skript nur am Anfang den Root-Pfad ab dem das Dateisystem durchsucht werden soll angeben,und in Zeile 2 den Pfad zur Textdatei in die die Daten geschrieben werden. Pfade erkennst du schon oder ?? Habs dir nochmal extra im Code kommentiert.
Wie man Powershell-Skripte ausführt steht hier : http://www.windowspro.de/andreas-kroschel/powershell-scripts-ausfuehren
Mit diesen Infos schafft das jetzt jeder Noob, der zumindest ein Minimum an Hirnschmalz mitbringt.
Bitte schaut euch das noch einmal an.
Muss ich nicht, funktioniert !! Glaub das jemandem der damit tagtäglich arbeitet.Gruß grexit