Hallo liebe Leute,
da ich noch relativ neu bin in der Programmierung stehe ich aktuell ziemlich auf dem Schlauch
Ich möchte eine vorhandene xml datei, welche properties enthält, um einen Eintrag erweitern.
Das klappt soweit auch sehr gut, jedoch habe ich das Problem, dass nach Speicherung der neuen Datei mir der Flag für die
!DOCTYPE properties aus der Datei entfernt wurde
Das ganze sieht wie folgt aus:
Ausgangsdatei
dort lasse ich folgende Batch drüber laufen um die properties um die Werte Straße und Hausnummer zu ergänzen
Ich suche also die Stelle </properties> wo die Datei endet und ersetze diese durch den Wert des Straßennamen, der Hausnummer und hänge dann </properties> wieder dran.
Vorher lege ich noch eine Sicherheitskopie der bestehenden Datei an.
Ich weiß dass ist nicht die schönste Lösung, aber ich bin aktuell noch zu dumm einfach Zeilen an den gewünschten Stellen einzufügen.
Ergebnis ist folgendes
Die Datei wurde also erfolgreich durch meine Werte ergänzt.
Problem
ich verstehe einfach nichts, weshalb er mir aus der Zeile
folgende macht
Ich verzweifle hier schon.
Problem ist, dass ein vorhandenes Programm ohne diesen Wert die Daten nicht einlesen kann
Weiß da evtl jemand Rat und kann weiterhelfen?
Grüße
da ich noch relativ neu bin in der Programmierung stehe ich aktuell ziemlich auf dem Schlauch

Ich möchte eine vorhandene xml datei, welche properties enthält, um einen Eintrag erweitern.
Das klappt soweit auch sehr gut, jedoch habe ich das Problem, dass nach Speicherung der neuen Datei mir der Flag für die
!DOCTYPE properties aus der Datei entfernt wurde

Das ganze sieht wie folgt aus:
Ausgangsdatei
Code:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="name">Max</entry>
<entry key="nachname">Mustermann</entry>
</properties>
dort lasse ich folgende Batch drüber laufen um die properties um die Werte Straße und Hausnummer zu ergänzen
Code:
@ECHO off & SETLOCAL enabledelayedexpansion
SET "quell_datei=C:\Users\USERNAME\Desktop\properties_old.xml"
SET "ziel_datei=C:\Users\USERNAME\Desktop\properties.xml"
SET "kopie_datei=C:\Users\USERNAME\Desktop\properties_old.xml"
SET "suchen_nach=</properties>"
SET "strasse=<entry key=Lindenstraße</entry>"
SET "hausnummer=<entry key=128</entry>"
ren C:\Users\USERNAME\Desktop\properties.xml properties_old.xml
REM Quell-Datei zeilenweise auslesen und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO SET "zeile=%%i" & CALL :ersetzen
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"
REM den Inhalt der Variable "suchen_nach" suchen
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET "zeile=!zeile:%suchen_nach%=%strasse% %hausnummer% %suchen_nach%!"
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
ECHO.!zeile!>>"%ziel_datei%"
GOTO :eof
:weiter
REM weitere Verarbeitung
ECHO Fertig.
Ich suche also die Stelle </properties> wo die Datei endet und ersetze diese durch den Wert des Straßennamen, der Hausnummer und hänge dann </properties> wieder dran.
Vorher lege ich noch eine Sicherheitskopie der bestehenden Datei an.
Ich weiß dass ist nicht die schönste Lösung, aber ich bin aktuell noch zu dumm einfach Zeilen an den gewünschten Stellen einzufügen.
Ergebnis ist folgendes
Code:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<//java.sun.com/dtd/properties.dtd">
<properties>
<entry key="name">Max</entry>
<entry key="nachname">Mustermann</entry>
<entry key="strasse">Lindenstraße</entry> <entry key="hausnummer">122</entry> </properties>
Die Datei wurde also erfolgreich durch meine Werte ergänzt.
Problem
ich verstehe einfach nichts, weshalb er mir aus der Zeile
Code:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
folgende macht
Code:
<//java.sun.com/dtd/properties.dtd">
Ich verzweifle hier schon.
Problem ist, dass ein vorhandenes Programm ohne diesen Wert die Daten nicht einlesen kann

Weiß da evtl jemand Rat und kann weiterhelfen?
Grüße