Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Textdatei (xml) splitten mit vielen Sonderzeichen drin...

Frage Entwicklung Batch & Shell

Mitglied: bufferm44

bufferm44 (Level 1) - Jetzt verbinden

14.05.2009, aktualisiert 00:46 Uhr, 2769 Aufrufe, 2 Kommentare

Hi zusammen,

ich komme mal wieder mit einem kleinen Problem um die Ecke...

Ich habe ein XML-File das an bestimmten Stellen gesplittet werden soll - Hintergrund:

Ein Konfigurationsfile soll eine Grundkonfiguration enthalten "oberer Teil" und "unterer Teil" und einen "editierbarenTeil" (Mitte) der von den Usern nach Herzenslust zerspielt werden kann. (Es geht nicht anders - die User müssen selber ändern können und es gibt in der Software keine Möglichkeit das Editieren auf einen bestimmten Bereich zu begrenzen. Es geht hier auch nicht um Böswilligkeit oder sowas - die User haben zu etwa 60% die gleichen Anforderungen und die anderen 40% stellen sie sich selbst ein. Das haben sie auch drauf, hat Jahre lang gut funktioniert. Nur wenn in den 60% was geändert werden muss (neue Server, neue Knöpchen die irgendwelche Scripte starten), rennen wir in der Abteilung rum von PC zu PC und die Fehlerquelle ist dementsprechend hoch wenn man pro Arbeitsplatz 30 Häkchen setzt und 10 neue Pfade eingibt...



Es wird die Ansage gelten "was geändert werden darf" bleibt und der Rest ist morgens "sauber"). Jeder Benutzer kann am Tag in seiner Konfiguration ändern was er will, nachts wird sein File eingelesen, der Teil den er editieren durfte wird herausextrahiert, und seine Konfigurationsdatei wird wieder neu zusammengesetzt: Oberer und unterer Teil (ist sauber da durch Admins gepflegt und evtl aktuelle Änderungen sind drin) und mittlerer Teil (der zuvor rausextrahiert wurde) werden also wieder zu einer Datei zusammengesetzt. Die Konfiguration die die Admins pflegen läuft dann genau andersrum, Änderungen im "mittleren Teil" gehen durch das Überbügeln mit den Teilen der User natürlich verloren, was vollkommen ok ist.

Beispiel: Die Zeilen 1-2 und 5-6 sollen dem User jede Nacht übergebügelt werden, 3-4 "bleiben ihm erhalten".

01.
Server1=10.20.30.40 
02.
Pfad3=c:\test 
03.
Bildschirmhintergrund=Augenkrebs 
04.
Knöpfchensortierung=Weglaufen will 
05.
Server4=20.30.40.50 
06.
Pfad6=d:\test2
Nun ist das ja im Prinzip kein Problem, Anleitungen zum Splitten und Zusammenfügen von Textdateien gibt es ja hier nicht wenige...

Aber in der xml sind ja ne Menge "böse" Zeichen die einem den Spaß verderben...

So sieht ein Teil aus:

01.
		<Struct name="actionItem[1]"> 
02.
			<String name="name">Knopf1</String> 
03.
			<String name="groupName">Übersicht</String> 
04.
			<Int name="confirmation">0</Int> 
05.
			<Int name="numActions">1</Int> 
06.
			<Int name="idIcon">251</Int> 
07.
			<Struct name="actions[0]"> 
08.
				<Int name="actionId">1</Int> 
09.
				<Struct name="aCopy"> 
10.
					<String name="destFolder">\\server\pfad</String> 
11.
					<Int name="setDodaysDate">0</Int> 
12.
					<Int name="allowMove">0</Int> 
13.
					<Int name="useCopyDelete">0</Int>

Wie erkläre ich der Batch nun z.B. die Zeile

01.
		<Struct name="actionItem[100]">
auszulesen und diese bis einschließlich Item 199 irgendwohin zu legen?

Als Arbeitsgrundlage habe ich das hier was ohne die Sonderzeichen auch einwandfrei funktioniert:

01.
set "Trenn=xxx" 
02.
set /a Nr=1001 
03.
set "Pfad=%~dpn1" 
04.
set "Ext=%~x1" 
05.
for /f "delims=" %%i in ('type "%~1"') do call :ProcessLine "%%i" 
06.
goto :eof 
07.
:ProcessLine 
08.
if %1 == "%Trenn%" goto :NewFile 
09.
echo %~1>>"%Pfad%-%Nr:~1%%Ext%" 
10.
goto :eof 
11.
:NewFile 
12.
set /a Nr+=1
Bin für jeden Tipp dankbar

LG

Tobi
Mitglied: problemsolver
14.05.2009 um 09:38 Uhr
Hallo Tobi,

ich könnte Dir mit VB weiterhelfen...(was sicherlich nicht schlechter sein wird...) Allerdings müsste ich wissen, was Du jetzt genau ersetzt haben willst. Beispiel:

xmlDatei besteht aus:
Bereich oben
Bereich mitte
Bereich unten

Bereich mitte wird begrenzt durch
01.
<Struct name="actionItem[100]"> 
02.
... 
03.
... 
04.
<Struct name="actionItem[200]">
Richtig?

Bereich mitte soll gesichert werden pro User und "Bereich oben" und "Bereich unten" sollen aus vordefinierten Standarddateien eingelesen werden und am Tagesanfang/Ende mit der gesicherten "Bereich Mitte" kombiniert werden?
xmlDatei nachher
Bereich oben (vordefiniert durch Admins)
Bereich mitte (vorherige Einstellungen des Users)
Bereich unten (vordefiniert durch Admins)

Sind diese Bedingungen korrekt?

Gruß

Markus
Bitte warten ..
Mitglied: bufferm44
19.05.2009 um 01:41 Uhr
Hi all,

mal ein Zwischenstand:

habe Markus den Teil als PN gesendet, Beitrag ist noch nicht gelöst aber in Arbeit
Bitte warten ..
Ähnliche Inhalte
XML
gelöst XML Datei mit Powershell splitten (2)

Frage von LianenSchwinger zum Thema XML ...

Batch & Shell
gelöst Powershell xml zu csv (2)

Frage von GeoSem zum Thema Batch & Shell ...

VB for Applications
gelöst Per vbscript xml Knoten an bestehenden Knoten anhängen (1)

Frage von aletri zum Thema VB for Applications ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...