Batch / Script Textverarbeitung

tylerdurden66

Newbie
Registriert
Apr. 2013
Beiträge
3
Hallo

Ich habe da ein Problem:

Ich habe eine xml-Datei mit verschieden tags.
Nun würde ich gerne den Text mittels Batch oder Script -Datei Textpassagen in andere xml-Dateien schreiben.

Inhalt.xml
<Tag name = "Tag1">
<Modul name= "Modul1">
<Data name= "Data1"></Data>
</Modul>
</Tag>
<Tag name = "Tag2">
<Modul name= "Modul2">
<Data name= "Data2"></Data>
</Modul>
</Tag>
<Tag name = "Tag3">
<Modul name= "Modul3">
<Data name= "Data3"></Data>
</Modul>
</Tag>

soll solche Dateien erstellen

Ziel1.xml
<Tag name = "Tag1">
<Modul name= "Modul1">
<Data name= "Data1"></Data>
</Modul>
</Tag>

Ziel2.xml
<Tag name = "Tag2">
<Modul name= "Modul2">
<Data name= "Data2"></Data>
</Modul>
</Tag>

Ziel3.xml
<Tag name = "Tag3">
<Modul name= "Modul3">
<Data name= "Data3"></Data>
</Modul>
</Tag>


Viele Grüße
 
Das kommt schon drauf an, wie die Dateien genau aussehen (bzw. aussehen sollen). Wenn es immer 5 Zeilen sind, kannst du natürlich 5 Zeilen auslesen und in eine Datei speichern und immer so weiter. Den Dateinamen kannst du hochzählen, wenn die Ziel1, Ziel2 usw. heißen sollen.

Um wie viele Einträge handelt es sich denn so in etwa?
 
Hallo

erstmal danke für die schnellen Antworten...

Die Frage ist wie ein Batch/Script File aussehen würde.

Die Anzahl der Tags bzw. Länge ist variabel... (1 .... 1000)

Viele Grüße
 
Das geht meines Erachtens am besten mit einem Script (welches Betriebssystem?) und regulären Ausdrücken.
 
Windows unterstützt ja standardmäßig Visual Basic Script und Java Script. Da mußt Du dich also einarbeiten.
Reguläre Ausdrücke sind auch nicht jedermanns Sache.

Alternativ kannst Du auch Microsofts Visual Studio Express nehmen, da debugging von Scripts und Batch schwierig ist. Kommt drauf an, wie oft Du das brauchst und wie professionell das sein soll.

Bei einmaliger Verwendung wäre sogar ein Makro in einer Textverarbeitung oder einem Editor wie Notepad++ denkbar.
 
miac schrieb:
Das geht meines Erachtens am besten mit einem Script (welches Betriebssystem?) und regulären Ausdrücken.

Ich habe nicht ganz verstanden, was OP genau will. Deshalb könnte es sein, dass reguläre Ausdrücke nicht funktionieren.

Wegen der Lustigkeit http://stackoverflow.com/a/1732454 aber das trifft auch auf XML zu.
 
HTML kann sogar recht gut mit Regulären Ausdrücken durchsucht und Teile davon zurückgegeben werden.

Ich weiß nicht, wieso der User das da behauptet. Man muß natürlich ein wenig Ahnung davon haben, insbesondere, wenn man über Zeilenenden sucht.

Aber alleine, wenn ich den Text von dem durchlese, sagt er in 100 Zeilen, wofür auch eine Zeile gereicht hätte. Konkretes fehlt leider völlig.
 
Wenn's denn nur darum geht, die Datei aufzuteilen und nicht etwa um das Wie bzw. das Erlernen, wie sowas geht, würde ich letztlich einfach auf bestehende Lösungen wie diese zurückgreifen.
 
Falls du noch keine Lösung gefunden hast:
Der Code ist in AutoIt geschrieben, du müsstest ihn vlt. noch kompilieren.
Code:
#include <String.au3>

$read = FileRead(@ScriptDir & "\inhalt.txt")
$data = _StringBetween($read,"<Tag","</Tag>")

For $x = 0 To Ubound($data) - 1
$path = @ScriptDir & "\Ziel" & $x+1 & ".txt"
FileWrite($path,"<Tag" & $data [$x] & "</Tag>")
Next

Für XML müsstest du die Endung einfach überall von txt auf xml ändern.
Ich kann's leider gerade nicht testen.
 
Zurück
Oben