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

Suchen u. Ersetzen von XML-Tags (fortlaufende Nummerierung) per Batch oder Tool

Frage Entwicklung Batch & Shell

Mitglied: DaMuchi

DaMuchi (Level 1) - Jetzt verbinden

01.11.2009 um 20:40 Uhr, 7192 Aufrufe, 10 Kommentare

Hallo allerseits

Ich bin auf der Suche nach einer Batchverarbeitung oder einem Tool, welches zum einen bestehende XML-Tags findet und diese so anpasst, dass von einem Startzähler aus ein Wert immer fortlaufend aufnummeriert wird.

Die XML-Datei sieht in etwa wie folgt aus:

<Connect> 
   <Task> 
      <Transaction> 
          <Mitarbeiter-Nr.>105</Mitarbeiter-Nr.> 
          ... 
      </Transaction> 
      <Transaction> 
          <Mitarbeiter-Nr.>112</Mitarbeiter-Nr.> 
          ... 
      </Transaction> 
      <Transaction> 
          <Mitarbeiter-Nr.>115</Mitarbeiter-Nr.> 
          ... 
      </Transaction> 
   </Task> 
<Connect>
Der Aufbau der Mitarbeiternummer ist nicht regelmässig. Nun will ich alle XML-Tags mit <Mitarbeiter-Nr.>*xxx*</Mitarbeiter-Nr.> ersetzen durch einen fortlaufenden XML-Tag z.B. ab dem Startzähler 100.
Das würde also im obigen Beispiel heissen, aus dem XML-Tag <Mitarbeiter-Nr.>105</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>100</Mitarbeiter-Nr.>, aus <Mitarbeiter-Nr.>112</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>101</Mitarbeiter-Nr.> und aus <Mitarbeiter-Nr.>115</Mitarbeiter-Nr.> wird <Mitarbeiter-Nr.>102</Mitarbeiter-Nr.>.

Mit dem untenstehenden Test-Skript, weiss ich leider nicht, wie die Variable gesetzt werden muss, damit alle XML-Tags mit <Mitarbeiter-Nr.>*xxx*</Mitarbeiter-Nr.> gefunden und ersetzt werden können oder ob dies über eine Variable überhaupt möglich ist.

@ECHO off 
SETLOCAL enabledelayedexpansion 
 
:: Suchen und Ersetzen von XML-Tags 
 
SET quell_datei=D:\test1.txt 
SET ziel_datei=D:\test2.txt 
SET /A z=100 
SET "suchen_nach=<Mitarbeiter-Nr.>100</Mitarbeiter-Nr.>" 
SET "ersetzen_durch=<Mitarbeiter-Nr.>200</Mitarbeiter-Nr.>" 
 
:: Loeschen der Ausgabedatei, falls sie (noch) existiert 
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL) 
 
:: Quell-Datei zeilenweise auslesen 
:: und in Variable "zeile" schreiben 
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO ( 
SET zeile=%%i&& CALL :ersetzen !zeile! 
 
GOTO :weiter 
:ersetzen 
:: innerhalb der Variable "zeile" 
:: den Inhalt der Variable "suchen_nach" suchen 
:: und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen 
SET /A z="z+1" 
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch% 
 
:: Inhalt der Variable "zeile" in die Ausgabedatei schreiben 
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%) 
GOTO :eof
Mit dem Tool "Useful File Utilities" und dem Plug-In "Batch Replacer" können zwar mit dem Suchparameter <Mitarbeiter-Nr.>#*#</Mitarbeiter-Nr.> alle Felder mutiert werden, doch für die fortlaufende Nummerierung habe ich leider keine Möglichkeit gefunden.

Vielen Dank im Voraus für Eure Tipps und Hilfestellung!

Beste Grüsse

DaMuchi
Mitglied: rubberman
01.11.2009 um 22:29 Uhr
Hallo DaMuchi,

XML-Tags so zu maskieren, damit man mit ihnen vernünftig arbeiten kann, ist mit Batch immer ein Lotteriespiel. Habe hier auch Doppelmaskierungen vornehmen müssen, damit der FINDSTR Befehl das ganze gefressen hat.
01.
@echo off &setlocal 
02.
set quell_datei=D:\test1.txt  
03.
set ziel_datei=D:\test2.txt  
04.
set /a z=100 
05.
type nul>"%ziel_datei%" 
06.
for /f "delims=: tokens=1*" %%i in ('findstr /n "^" "%quell_datei%"') do set "Zeile=%%j" &call :sub 
07.
pause 
08.
goto :eof 
09.
 
10.
:sub 
11.
if not defined Zeile ( 
12.
  >>"%ziel_datei%" echo. 
13.
  goto :eof 
14.
15.
set "Zeile=%Zeile:<=^^^<%" 
16.
set "Zeile=%Zeile:>=^^^>%" 
17.
set "Zeile=%Zeile:|=^^^|%" 
18.
set "Zeile=%Zeile:&=^^^&%" 
19.
echo %Zeile%|findstr /c:"Mitarbeiter-Nr">nul&&goto ersetzen 
20.
set Zeile=%Zeile% 
21.
>>"%ziel_datei%" echo %Zeile% 
22.
goto :eof 
23.
:ersetzen 
24.
set "Zeile=          ^<Mitarbeiter-Nr.^>%z%^</Mitarbeiter-Nr.^>" 
25.
>>"%ziel_datei%" echo %Zeile% 
26.
set /a z+=1 
27.
goto :eof
Grüße
rubberman
Bitte warten ..
Mitglied: bastla
02.11.2009 um 02:14 Uhr
Hallo DaMuchi und willkommen im Forum!

Wie rubberman schon gezeigt hat, ist für diese Problemstellung Batch zwar verwendbar, aber nicht unbedingt erste Wahl - daher als Alternative ein VBScript:
01.
Ein = "D:\test1.txt" 
02.
Aus = "D:\test2.txt" 
03.
'Suchbegriff im RegEx-Format, daher: Punkt maskieren und zu ersetzenden Teil (=Nummer) in Klammern setzen 
04.
Such = "<Mitarbeiter-Nr\.>(\d+)</Mitarbeiter-Nr\.>" 
05.
N = 100 'Startwert für neue Nummerierung 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
T1 = fso.OpenTextFile(Ein).ReadAll 
09.
 
10.
Set rE = New RegExp 
11.
rE.Pattern = Such 
12.
rE.IgnoreCase = True 
13.
rE.Global = True 
14.
 
15.
SP = 1 'Startposition im String 
16.
For Each M In rE.Execute(T1) 
17.
    P = M.FirstIndex + M.Length + 1 'Endposition des die Fundstelle enthaltenden Teilstrings 
18.
     'im gefundenen Teilstring (des Originaltextes) die bisherige Nummer ersetzen und zum neuen Text hinzufügen 
19.
    T2 = T2 & Replace(Mid(T1, SP, P - SP), M.SubMatches(0), N, 1, 1) 
20.
    N = N + 1 
21.
    SP = P 'Startposition = vorige Endposition 
22.
Next 
23.
T2 = T2 & Mid(T1, SP) 'den Teil nach der letzten Fundstelle auch noch mitnehmen 
24.
fso.CreateTextFile(Aus, True).Write T2
Zur (oberflächlichen) Kontrolle des Ergebnisses darf's dann wieder Batch sein:
01.
findstr /v /g:D:\test2.txt D:\test1.txt 
02.
findstr /v /g:D:\test1.txt D:\test2.txt
(oder per "fc").

Grüße
bastla
Bitte warten ..
Mitglied: 76109
02.11.2009 um 09:50 Uhr
Hallo zusammen!

Hier noch ne VB-Script-Variante (*.vbs)

01.
Const StartNum = 100 
02.
 
03.
Const eFile = "D:\Eingabe.Txt" 
04.
Const aFile = "D:\Ausgabe.Txt" 
05.
 
06.
Const Tag1 = "<Mitarbeiter-Nr.>" 
07.
Const Tag2 = "</Mitarbeiter-Nr.>" 
08.
 
09.
 
10.
Dim RE, Fso, File, Text, Tag, i 
11.
 
12.
Set RE = New RegExp:  i = StartNum  
13.
 
14.
Set Fso = CreateObject("Scripting.FileSystemObject") 
15.
 
16.
With RE 
17.
   .Global = True:  .IgnoreCase = True:  .Pattern = Tag1 & ".*" & Tag2 
18.
End With 
19.
 
20.
Set File = Fso.OpenTextFile(eFile):  Text = File.ReadAll:  File.Close 
21.
 
22.
For Each Tag In RE.Execute(Text) 
23.
    Text = Replace(Text, Tag, Tag1 & i & Tag2):  i = i + 1 
24.
Next 
25.
     
26.
Set File = Fso.CreateTextFile(aFile):  File.Write Text:  File.Close
@bastla
Warum so kompliziert?

Gruß Dieter
Bitte warten ..
Mitglied: bastla
02.11.2009 um 10:50 Uhr
@76109
Warum so kompliziert?
Da es doch schon etwas spät war, habe ich mich nicht um etwaiges Optimierungspotential gekümmert, sondern die Sicherheitsvariante (auch, da nicht klar war, ob die bisherigen Nummern alle die gleiche Länge wie die neuen Nummern haben) gewählt - damit es zB nicht passiert, dass (wie es bei Deiner Version vorkommen kann), ein bereits ersetzter Teil nochmals ersetzt wird (kannst Du nachvollziehen, wenn Du in der Testdatei anstelle von 115 den Wert 101 einsetzt ...

Ein weiterer Unterschied zwischen unseren Scripts besteht übrigens im Suchbegriff: Ich hatte xxx als numerisch (aus mindestens einer und sonst auch nur Ziffern bestehend) interpretiert, bei Dir wird alles (und auch Nichts) zwischen den "Mitarbeiter-Nr."-Tags ersetzt - was benötigt wird, muss DaMuchi wissen.
(Die Ungenauigkeit hinsichtlich des Punktes bei "Mitarbeiter-Nr." - könnte in Deiner Fassung ein beliebiges Zeichen sein - dürfte übrigens kaum relevant sein.)

Grüße
bastla
Bitte warten ..
Mitglied: 76109
02.11.2009 um 11:21 Uhr
Hallo bastla!

Danke für die Erklärung!

Das es schon so spät war, hatte ich garnicht registriert

Im Gegensatz zu mir, hast Du natürlich wieder alle Eventualitäten berücksichtigt.

Bleibt die Frage, ob diese auch zu berücksichtigen sind. Das muss DaMuchi entscheiden.

Gruß Dieter
Bitte warten ..
Mitglied: DaMuchi
02.11.2009 um 22:23 Uhr
Erstmals herzlichen Dank an Bastla und Rubberman!
Eure vorgestellten Beispiele konnte ich zum grössten Teil anwenden und meine Arbeit wurde um ein Vielfaches reduziert.

Mein Beispiel mit dem Punkt in Mitarbeiter-Nr. war wohl nicht ideal gewählt.
Im Original heisst der XML-Tag <Employee>Zahl</Employee> und es kann durchaus vorkommen, dass eine dreistellige Zahl durch eine vierstellige Zahl ersetzt wird, was aber problemlos funktionierte.

Betrifft Bastla's VB-Script:
Komischerweise hatte ich Probleme mit den XML-Tags <AddressNumber>Zahl</AddressNumber> und <Beneficiary>Zahl</Beneficiary>. Bei dem XML-Tag AddressNumber wurde nichts ersetzt und bei <Beneficiary> wurden auch z.B. der Tag <BeneficiaryCode> angepasst.

In Sachen VB habe ich sowieso fast keine Kenntnisse und verstehe deinen VB-Script leider nur teilweise, um die notwendigen Anpassungen für die obige Problematik zu machen.

Betrifft Rubberman's Batchverarbeitung:

Funktionierte soweit einwandfrei. Nur die Verarbeitung dauert doch um einiges länger als die mit dem VB-Script, aber das liegt daran das durchschnittlich >30'000 Zeilen umgeschrieben werden.

Kennt jemand eigentlich ein gutes VB-Buch für Anfänger ;)

Nochmals ein grosses Dankeschön an euch alle!

Viele Grüsse

DaMuchi
Bitte warten ..
Mitglied: bastla
02.11.2009 um 23:04 Uhr
Hallo DaMuchi!

Schön, dass wir helfen konnten.
Hinsichtlich des Problems bei "<AddressNumber>Zahl</AddressNumber>": Nur zur Sicherheit: Die entsprechende Code-Zeile sollte im Prinzip so aussehen:
rE.Pattern = "<AddressNumber>(\d+)</AddressNumber>"
Allerdings wird durch das Suchmuster "\d+" eine relativ "strenge" Überprüfung vorgenommen: Nur, wenn für "Zahl" ausschließlich Ziffern (und zwar mindestens eine) vorgefunden werden, erfolgt auch eine Ersetzung ("\d" steht dabei für eine Ziffer von 0 bis 9, das "+" verlangt, dass mindestens ein solches Zeichen vorkommt). Im Ansatz von didi1954 findest Du mit ".*" das "Gegenstück" - Bedeutung: Es kann, muss aber nicht (dafür sorgt der Stern) ein beliebiges Zeichen (symbolisiert durch den Punkt) als "Zahl" aufscheinen. Wenn Du daher auch mit dieser "lockeren" Suchbedingung leben kannst, sollte mit
rE.Pattern = "<AddressNumber>(.*)</AddressNumber>"
auch die Ersetzung für diese Tags klappen.
Was "<Beneficiary>" und "<BeneficiaryCode>" angeht: Eigentlich sollte nur jeweils einer der beiden Suchbegriffe gefunden werden, also mit zB
rE.Pattern = "<Beneficiary>(\d+)</Beneficiary>"
nur ersterer - funktioniert bei mir übrigens auch (selbst mit (.*) im Suchkriterium) ....
Als kurze Erklärung zum Ablauf des Scripts:
Nach dem Einlesen des gesamten Dateiinhaltes in eine Variable (T1) wird mit den oben angegebenen "Regulären Ausdrücken" nach den Fundstellen gesucht, wobei als Ergebnis sowohl die Position innerhalb des Strings (Zeichenanzahl vom Beginn weg gezählt) und die Länge des gefundenen Teiles (in Zeichen) als auch, ermöglicht durch die Klammern um den "Zahl"-Teil, als "SubMatch" die Zahl selbst zur Verfügung stehen.

Die Funde werden durch die "For-Next"-Schleife nacheinander bearbeitet.

Mit der Funktion Mid() kann dann das die Fundstelle beinhaltende Textstück aus T1 entnommen, die Zahl durch die laufende Nummer N ersetzt (siehe Replace() und das Textstück einer zweiten Variablen (T2) hinzugefügt werden - mit dieser "Salamitaktik" wird immer nur der soeben benötigte Teil aus T1 übernommen, wodurch vor allem, wie schon oben angemerkt, verhindert werden soll, dass bereits "behandelte" Zahlen nochmals ersetzt werden. Da ich auch davon ausgegangen war, dass die Zahlen unterschiedlich lang sein könnten, konnte auch kein zeichenweiser Austausch der alten durch die neue Zahl erfolgen, sondern es musste die gesamte alte Zahl durch die neue Zahl ersetzt werden.

Am Ende wird die zweite Datei mit dem Inhalt der Variablen T2 erstellt.
Einen Literaturhinweis habe ich leider nicht anzubieten ...

Grüße
bastla
Bitte warten ..
Mitglied: DaMuchi
09.11.2009 um 20:38 Uhr
Hallo Bastla!

Wenn auch mit Verspätung vielen Dank für Deine Ausführungen!

Ich habe das Ganze nun nochmals getestet, leider wird weder <Beneficiary>xxx</Beneficiary> noch <AddressNumber>xxx<7AddressNumber> angepasst.
Es wird wohl kaum daran liegen, dass diese beiden Tags eine Gruppierung weiter nach rechts verschoben sind als die beiden funktionierenden Tags <EmployeeNumber>xxx</EmployeeNumber> und <BadgeID>xxx</BadgeID>?

Anbei einmal ein Auszug von einer Transaktion aus der Original-Datei:

01.
  <TaskCount>1</TaskCount> 
02.
  <Task> 
03.
    <Parameter> 
04.
      <Application>LOHN</Application> 
05.
      <Id>HierarchyEmployee</Id> 
06.
      <MapId>OhneLohn</MapId> 
07.
      <Version>2009.10</Version> 
08.
    </Parameter> 
09.
    <Transaction> 
10.
      <Employee mode='SAVE'> 
11.
        <EmployeeNumber>104</EmployeeNumber> 
12.
        <CodeName>MUSTER HANS</CodeName> 
13.
        <LastName>Muster</LastName> 
14.
        <FirstName>Hans</FirstName> 
15.
        <BadgeID>104</BadgeID> 
16.
        <EmployeeTimeAxis mode='SAVE'> 
17.
          <CostCentreGroup>0</CostCentreGroup> 
18.
          <CostCentre1Level1>0</CostCentre1Level1> 
19.
          <CostCentre2Level1>0</CostCentre2Level1> 
20.
          <CostCentre3Level1>0</CostCentre3Level1> 
21.
          <CostCentre4Level1>0</CostCentre4Level1> 
22.
          <CostCentre5Level1>0</CostCentre5Level1> 
23.
          <CostCentre6Level1>0</CostCentre6Level1> 
24.
          <CostCentre7Level1>0</CostCentre7Level1> 
25.
          <CostCentre8Level1>0</CostCentre8Level1> 
26.
          <CostCentre9Level1>0</CostCentre9Level1> 
27.
          <CostCentre10Level1>0</CostCentre10Level1> 
28.
          <CostCentre1PercentageLevel1>0</CostCentre1PercentageLevel1> 
29.
          <CostCentre2PercentageLevel1>0</CostCentre2PercentageLevel1> 
30.
          <CostCentre3PercentageLevel1>0</CostCentre3PercentageLevel1> 
31.
          <CostCentre4PercentageLevel1>0</CostCentre4PercentageLevel1> 
32.
          <CostCentre5PercentageLevel1>0</CostCentre5PercentageLevel1> 
33.
          <CostCentre6PercentageLevel1>0</CostCentre6PercentageLevel1> 
34.
          <CostCentre7PercentageLevel1>0</CostCentre7PercentageLevel1> 
35.
          <CostCentre8PercentageLevel1>0</CostCentre8PercentageLevel1> 
36.
          <CostCentre9PercentageLevel1>0</CostCentre9PercentageLevel1> 
37.
          <CostCentre10PercentageLevel1>0</CostCentre10PercentageLevel1> 
38.
          <CostCentre1Level2>0</CostCentre1Level2> 
39.
          <CostCentre2Level2>0</CostCentre2Level2> 
40.
          <CostCentre3Level2>0</CostCentre3Level2> 
41.
          <CostCentre4Level2>0</CostCentre4Level2> 
42.
          <CostCentre5Level2>0</CostCentre5Level2> 
43.
          <CostCentre6Level2>0</CostCentre6Level2> 
44.
          <CostCentre7Level2>0</CostCentre7Level2> 
45.
          <CostCentre8Level2>0</CostCentre8Level2> 
46.
          <CostCentre9Level2>0</CostCentre9Level2> 
47.
          <CostCentre10Level2>0</CostCentre10Level2> 
48.
          <CostCentre1PercentageLevel2>0</CostCentre1PercentageLevel2> 
49.
          <CostCentre2PercentageLevel2>0</CostCentre2PercentageLevel2> 
50.
          <CostCentre3PercentageLevel2>0</CostCentre3PercentageLevel2> 
51.
          <CostCentre4PercentageLevel2>0</CostCentre4PercentageLevel2> 
52.
          <CostCentre5PercentageLevel2>0</CostCentre5PercentageLevel2> 
53.
          <CostCentre6PercentageLevel2>0</CostCentre6PercentageLevel2> 
54.
          <CostCentre7PercentageLevel2>0</CostCentre7PercentageLevel2> 
55.
          <CostCentre8PercentageLevel2>0</CostCentre8PercentageLevel2> 
56.
          <CostCentre9PercentageLevel2>0</CostCentre9PercentageLevel2> 
57.
          <CostCentre10PercentageLevel2>0</CostCentre10PercentageLevel2> 
58.
          <MunicipailityFunction1>0</MunicipailityFunction1> 
59.
          <MunicipailityFunction2>0</MunicipailityFunction2> 
60.
          <MunicipailityFunction3>0</MunicipailityFunction3> 
61.
          <MunicipailityFunction4>0</MunicipailityFunction4> 
62.
          <MunicipailityFunction5>0</MunicipailityFunction5> 
63.
          <MunicipailityFunction6>0</MunicipailityFunction6> 
64.
          <MunicipailityFunction7>0</MunicipailityFunction7> 
65.
          <MunicipailityFunction8>0</MunicipailityFunction8> 
66.
          <MunicipailityFunction9>0</MunicipailityFunction9> 
67.
          <MunicipailityFunction10>0</MunicipailityFunction10> 
68.
          <MunicipalityType1>0</MunicipalityType1> 
69.
          <MunicipalityType2>0</MunicipalityType2> 
70.
          <MunicipalityType3>0</MunicipalityType3> 
71.
          <MunicipalityType4>0</MunicipalityType4> 
72.
          <MunicipalityType5>0</MunicipalityType5> 
73.
          <MunicipalityType6>0</MunicipalityType6> 
74.
          <MunicipalityType7>0</MunicipalityType7> 
75.
          <MunicipalityType8>0</MunicipalityType8> 
76.
          <MunicipalityType9>0</MunicipalityType9> 
77.
          <MunicipalityType10>0</MunicipalityType10> 
78.
          <YearTimeAxis>2003</YearTimeAxis> 
79.
          <MonthTimeAxis>1</MonthTimeAxis> 
80.
          <DepartmentNumber>1</DepartmentNumber> 
81.
          <SettlementGroup>0</SettlementGroup> 
82.
          <GeneralLegerBookingGroup>0</GeneralLegerBookingGroup> 
83.
          <LastEntry>1999-10-01</LastEntry> 
84.
          <LastLeaving/> 
85.
          <EmploymentDuration>0</EmploymentDuration> 
86.
          <NewEmployee/> 
87.
          <DateOfBirth>1982-07-04</DateOfBirth> 
88.
          <Sex>M</Sex> 
89.
          <PaymentInterval>6</PaymentInterval> 
90.
          <Type>M</Type> 
91.
          <LanguageCode>D</LanguageCode> 
92.
          <PasswordLevel>0</PasswordLevel> 
93.
          <MaximaSettlementType>1</MaximaSettlementType> 
94.
          <ConsolidationNumber>0</ConsolidationNumber> 
95.
          <Division>0</Division> 
96.
          <ProjectManagementGroup>0</ProjectManagementGroup> 
97.
          <FormGroup>0</FormGroup> 
98.
          <ProjectEmployeeProfile>0</ProjectEmployeeProfile> 
99.
          <Country>CH</Country> 
100.
          <Currency>CHF</Currency> 
101.
          <OASINumber>199.99.999.999</OASINumber> 
102.
          <SUVACode>Z1</SUVACode> 
103.
          <OASISettlementType>1</OASISettlementType> 
104.
          <SFSOZIP>5430</SFSOZIP> 
105.
          <CantonOfDomicile>AG</CantonOfDomicile> 
106.
          <PlaceOfWork>1</PlaceOfWork> 
107.
          <ForeignerCode>0</ForeignerCode> 
108.
          <WithholdingTaxCode>1</WithholdingTaxCode> 
109.
          <WithholdingTaxTariffClass>0</WithholdingTaxTariffClass> 
110.
          <WithholdingTaxRate>0</WithholdingTaxRate> 
111.
          <WithholdingTaxTariffCode/> 
112.
          <WithholdingTaxResidenceCode/> 
113.
          <CantonOfWork>ZH</CantonOfWork> 
114.
          <Spouse/> 
115.
          <SFSOCountry>CH</SFSOCountry> 
116.
          <SFSORelevant>false</SFSORelevant> 
117.
          <SFSOResidenceCategory>0</SFSOResidenceCategory> 
118.
          <SFSOEducationType>0</SFSOEducationType> 
119.
          <SFSORequirementLevel>0</SFSORequirementLevel> 
120.
          <SFSOSeniorManagementFunction>0</SFSOSeniorManagementFunction> 
121.
          <SFSOActivity>0</SFSOActivity> 
122.
          <SFSOWageAgreement>0</SFSOWageAgreement> 
123.
          <SFSOSalaryForm>0</SFSOSalaryForm> 
124.
          <SFSOWeeklyWorkingHours>0</SFSOWeeklyWorkingHours> 
125.
          <ResidencePermit/> 
126.
          <AutomaticEntryLeavingSwitch>false</AutomaticEntryLeavingSwitch> 
127.
          <FullProgressionForPartTimeWork>false</FullProgressionForPartTimeWork> 
128.
          <WithholdingTaxCertificationType/> 
129.
          <WithholdingTaxReturnHome/> 
130.
          <SpouseIsWorkingInSwitzerland>false</SpouseIsWorkingInSwitzerland> 
131.
          <CompensationOffice>1</CompensationOffice> 
132.
          <InsuranceCompany>2</InsuranceCompany> 
133.
          <SocialInsuranceNumber>999.9999.9999.99</SocialInsuranceNumber> 
134.
          <SupplementaryAccidentInsurer>0</SupplementaryAccidentInsurer> 
135.
          <ApprenticeOrTrainee>false</ApprenticeOrTrainee> 
136.
          <WeeklyWorkingLessons>0</WeeklyWorkingLessons> 
137.
          <DailySicknessAllowance>0</DailySicknessAllowance> 
138.
          <Initials/> 
139.
          <Nationality>CH</Nationality> 
140.
          <PlaceOfBirthOrHometown/> 
141.
          <FreeAbbreviation/> 
142.
          <FreeText/> 
143.
          <CivilStatus>2</CivilStatus> 
144.
          <FreeNumber1>0</FreeNumber1> 
145.
          <FreeNumber2>0</FreeNumber2> 
146.
          <Profession/> 
147.
          <Position/> 
148.
          <FreeCode/> 
149.
          <FreeDate1/> 
150.
          <FreeDate2/> 
151.
          <Support>false</Support> 
152.
          <MarriageDate/> 
153.
          <ApprenticeshipInOwnCompany>false</ApprenticeshipInOwnCompany> 
154.
          <ApprenticeFrom/> 
155.
          <ApprenticeUntil/> 
156.
          <SwissmemCode>0</SwissmemCode> 
157.
          <WageStatementTemplate>1</WageStatementTemplate> 
158.
          <Tips/> 
159.
          <BenefitInKind/> 
160.
          <CompanyCar>P</CompanyCar> 
161.
          <SubscriptionPaid/> 
162.
          <CanteenMealsAvailable/> 
163.
          <NoCompensationOfExpenses>false</NoCompensationOfExpenses> 
164.
          <NoLumpSumCompensation>false</NoLumpSumCompensation> 
165.
          <GratuitousTransportHomeToWork>false</GratuitousTransportHomeToWork> 
166.
          <ContributionToMeals>false</ContributionToMeals> 
167.
          <ParticipationOrClaimRights>false</ParticipationOrClaimRights> 
168.
          <EmployeeWageStatementData>true</EmployeeWageStatementData> 
169.
          <WageStatementOtherExpensesType/> 
170.
          <WageStatementText>Fahrz: Benzin, Rep, StVA, Versich zL Mitarb</WageStatementText> 
171.
          <ZARNumber/> 
172.
          <ZEMISNumber/> 
173.
        </EmployeeTimeAxis> 
174.
        <EntryLeaving mode='SAVE'> 
175.
          <EntryDate>1999-10-01</EntryDate> 
176.
          <LeavingDate/> 
177.
          <ReasonForLeaving/> 
178.
          <LeavingCode>0</LeavingCode> 
179.
          <LeavingCodeForSocialInsurance>0</LeavingCodeForSocialInsurance> 
180.
          <EntryOrLeavingSalaryIrrelevant>true</EntryOrLeavingSalaryIrrelevant> 
181.
          <FluctuationIncludedInHeadcount>true</FluctuationIncludedInHeadcount> 
182.
        </EntryLeaving> 
183.
        <AddressData mode='SAVE'> 
184.
          <AddressNumber>5</AddressNumber> 
185.
          <Country>CH</Country> 
186.
          <ZIP>5430</ZIP> 
187.
          <City>Test</City> 
188.
          <Language>D</Language> 
189.
          <PostRoute>0</PostRoute> 
190.
          <Supplement/> 
191.
          <Line1>Musterstrasse 24</Line1> 
192.
          <Line2/> 
193.
          <Line3/> 
194.
          <Line4/> 
195.
          <SalutationNumber>1</SalutationNumber> 
196.
          <IndustryCode>0</IndustryCode> 
197.
          <SalutationName>Muster</SalutationName> 
198.
          <Title/> 
199.
          <Text/> 
200.
          <Website/> 
201.
          <Email/> 
202.
          <Phone1/> 
203.
          <Phone2/> 
204.
          <Mobile/> 
205.
          <Fax/> 
206.
          <Free1/> 
207.
          <Free2/> 
208.
          <FreeDate/> 
209.
          <Inactive>false</Inactive> 
210.
          <State>ZH</State> 
211.
          <NumberOfContacts>0</NumberOfContacts> 
212.
          <IsOrderCustomer>false</IsOrderCustomer> 
213.
          <NameCodeAvailable>false</NameCodeAvailable> 
214.
          <IsGeneralLedgerAddress>false</IsGeneralLedgerAddress> 
215.
          <IsSCMAddress>false</IsSCMAddress> 
216.
          <IsExternal1>false</IsExternal1> 
217.
          <IsExternal2>false</IsExternal2> 
218.
          <IsExternal3>false</IsExternal3> 
219.
          <ModifiedBy>1</ModifiedBy> 
220.
          <EntryDate>2003-05-06</EntryDate> 
221.
          <EnteredBy>1</EnteredBy> 
222.
          <TextField1/> 
223.
          <TextField2/> 
224.
          <TextField3/> 
225.
          <TextField4/> 
226.
          <InfoField1/> 
227.
          <InfoField2/> 
228.
          <InfoField3/> 
229.
          <InfoField4/> 
230.
          <InfoField5/> 
231.
          <InfoField6/> 
232.
          <Number1>0</Number1> 
233.
          <Number2>0</Number2> 
234.
          <Number3>0</Number3> 
235.
          <Number4>0</Number4> 
236.
          <Date1/> 
237.
          <Date2/> 
238.
          <Code1/> 
239.
          <Code2/> 
240.
          <Code3/> 
241.
          <Code4/> 
242.
          <YesNo1>false</YesNo1> 
243.
          <YesNo2>false</YesNo2> 
244.
          <YesNo3>false</YesNo3> 
245.
          <YesNo4>false</YesNo4> 
246.
          <YesNo5>false</YesNo5> 
247.
          <YesNo6>false</YesNo6> 
248.
          <YesNo7>false</YesNo7> 
249.
          <YesNo8>false</YesNo8> 
250.
          <YesNo9>false</YesNo9> 
251.
          <YesNo10>false</YesNo10> 
252.
          <YesNo11>false</YesNo11> 
253.
          <YesNo12>false</YesNo12> 
254.
          <YesNo13>false</YesNo13> 
255.
          <YesNo14>false</YesNo14> 
256.
          <YesNo15>false</YesNo15> 
257.
          <YesNo16>false</YesNo16> 
258.
          <YesNo17>false</YesNo17> 
259.
          <YesNo18>false</YesNo18> 
260.
          <YesNo19>false</YesNo19> 
261.
          <YesNo20>false</YesNo20> 
262.
          <YesNo21>false</YesNo21> 
263.
          <YesNo22>false</YesNo22> 
264.
          <YesNo23>false</YesNo23> 
265.
          <YesNo24>false</YesNo24> 
266.
          <YesNo25>false</YesNo25> 
267.
          <YesNo26>false</YesNo26> 
268.
          <YesNo27>false</YesNo27> 
269.
          <YesNo28>false</YesNo28> 
270.
          <YesNo29>false</YesNo29> 
271.
          <YesNo30>false</YesNo30> 
272.
          <Note/> 
273.
          <SubjectType>1</SubjectType> 
274.
          <AANMainSubject>0</AANMainSubject> 
275.
        </AddressData> 
276.
        <Outpayment mode='SAVE'> 
277.
          <PaymentCentreNumber>1</PaymentCentreNumber> 
278.
          <CompanyPaymentCentre>1</CompanyPaymentCentre> 
279.
          <PaymentCentreType>2</PaymentCentreType> 
280.
          <Currency>CHF</Currency> 
281.
          <PartialPaymentType>1</PartialPaymentType> 
282.
          <Amount>0</Amount> 
283.
          <PayrollType>0</PayrollType> 
284.
          <NormalPayrollRun>false</NormalPayrollRun> 
285.
          <GratuityRun>false</GratuityRun> 
286.
          <InterimRun>false</InterimRun> 
287.
          <SpecialPayrollRun>false</SpecialPayrollRun> 
288.
          <PaymentRounding>true</PaymentRounding> 
289.
          <PaymentRoundingTo>0.05</PaymentRoundingTo> 
290.
          <Text1>Salärzahlung</Text1> 
291.
          <Text2/> 
292.
          <PaymentReference/> 
293.
          <DataFormat>1</DataFormat> 
294.
          <Medium>1</Medium> 
295.
          <Beneficiary>5</Beneficiary> 
296.
          <BeneficiaryCodeName>MUSTER HANS</BeneficiaryCodeName> 
297.
          <BeneficiaryAccountNumber>1</BeneficiaryAccountNumber> 
298.
          <Bank>0</Bank> 
299.
          <PaymentMethod>0</PaymentMethod> 
300.
          <OutpaymentCurrency>0</OutpaymentCurrency> 
301.
          <SwiftPaymentType>0</SwiftPaymentType> 
302.
          <Type>0</Type> 
303.
          <BeneficiaryAccount mode='SAVE'> 
304.
            <BeneficiaryType>33</BeneficiaryType> 
305.
            <BeneficiaryCountry>CH</BeneficiaryCountry> 
306.
            <BeneficiaryAccountNumber>99-99999-9</BeneficiaryAccountNumber> 
307.
            <BankNumber>0</BankNumber> 
308.
            <TaxType>0</TaxType> 
309.
            <PostfinanceExpressDelivery>0</PostfinanceExpressDelivery> 
310.
            <PostfinancePersonal>0</PostfinancePersonal> 
311.
          </BeneficiaryAccount> 
312.
        </Outpayment> 
313.
      </Employee> 
314.
    </Transaction>
01.
          <Code2/> 
02.
          <Code3/> 
03.
          <Code4/> 
04.
          <YesNo1>false</YesNo1> 
05.
          <YesNo2>false</YesNo2> 
06.
          <YesNo3>false</YesNo3> 
07.
          <YesNo4>false</YesNo4> 
08.
          <YesNo5>false</YesNo5> 
09.
          <YesNo6>false</YesNo6> 
10.
          <YesNo7>false</YesNo7> 
11.
          <YesNo8>false</YesNo8> 
12.
          <YesNo9>false</YesNo9> 
13.
          <YesNo10>false</YesNo10> 
14.
          <YesNo11>false</YesNo11> 
15.
          <YesNo12>false</YesNo12> 
16.
          <YesNo13>false</YesNo13> 
17.
          <YesNo14>false</YesNo14> 
18.
          <YesNo15>false</YesNo15> 
19.
          <YesNo16>false</YesNo16> 
20.
          <YesNo17>false</YesNo17> 
21.
          <YesNo18>false</YesNo18> 
22.
          <YesNo19>false</YesNo19> 
23.
          <YesNo20>false</YesNo20> 
24.
          <YesNo21>false</YesNo21> 
25.
          <YesNo22>false</YesNo22> 
26.
          <YesNo23>false</YesNo23> 
27.
          <YesNo24>false</YesNo24> 
28.
          <YesNo25>false</YesNo25> 
29.
          <YesNo26>false</YesNo26> 
30.
          <YesNo27>false</YesNo27> 
31.
          <YesNo28>false</YesNo28> 
32.
          <YesNo29>false</YesNo29> 
33.
          <YesNo30>false</YesNo30> 
34.
          <Note/> 
35.
          <SubjectType>1</SubjectType> 
36.
          <AANMainSubject>0</AANMainSubject> 
37.
        </AddressData> 
38.
        <Outpayment mode='SAVE'> 
39.
          <PaymentCentreNumber>1</PaymentCentreNumber> 
40.
          <CompanyPaymentCentre>1</CompanyPaymentCentre> 
41.
          <PaymentCentreType>2</PaymentCentreType> 
42.
          <Currency>CHF</Currency> 
43.
          <PartialPaymentType>1</PartialPaymentType> 
44.
          <Amount>0</Amount> 
45.
          <PayrollType>0</PayrollType> 
46.
          <NormalPayrollRun>false</NormalPayrollRun> 
47.
          <GratuityRun>false</GratuityRun> 
48.
          <InterimRun>false</InterimRun> 
49.
          <SpecialPayrollRun>false</SpecialPayrollRun> 
50.
          <PaymentRounding>true</PaymentRounding> 
51.
          <PaymentRoundingTo>0.05</PaymentRoundingTo> 
52.
          <Text1>Salärzahlung</Text1> 
53.
          <Text2/> 
54.
          <PaymentReference/> 
55.
          <DataFormat>1</DataFormat> 
56.
          <Medium>1</Medium> 
57.
          <Beneficiary>5</Beneficiary> 
58.
          <BeneficiaryCodeName>MUSTER HANS</BeneficiaryCodeName> 
59.
          <BeneficiaryAccountNumber>1</BeneficiaryAccountNumber> 
60.
          <Bank>0</Bank> 
61.
          <PaymentMethod>0</PaymentMethod> 
62.
          <OutpaymentCurrency>0</OutpaymentCurrency> 
63.
          <SwiftPaymentType>0</SwiftPaymentType> 
64.
          <Type>0</Type> 
65.
          <BeneficiaryAccount mode='SAVE'> 
66.
            <BeneficiaryType>33</BeneficiaryType> 
67.
            <BeneficiaryCountry>CH</BeneficiaryCountry> 
68.
            <BeneficiaryAccountNumber>99-99999-9</BeneficiaryAccountNumber> 
69.
            <BankNumber>0</BankNumber> 
70.
            <TaxType>0</TaxType> 
71.
            <PostfinanceExpressDelivery>0</PostfinanceExpressDelivery> 
72.
            <PostfinancePersonal>0</PostfinancePersonal> 
73.
          </BeneficiaryAccount> 
74.
        </Outpayment> 
75.
      </Employee> 
76.
    </Transaction>
Besten Dank für die weitere Unterstützung!

Viele Grüsse

DaMuchi
Bitte warten ..
Mitglied: bastla
11.11.2009 um 23:40 Uhr
Hallo DaMuchi!

Hinsichtlich der Verspätung kann ich mich gleich revanchieren : Ich seh's mir an, aber es wird noch etwas dauern ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell und XMLs -Von definierten XML Tags die Werte ändern (10)

Frage von rdklie zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Skript suchen und ersetzen in einer CSV (3)

Frage von mayli01 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...