# DOM docoment schliesen



## Guest (14. Okt 2004)

hallo,

folgendes Problem bringt mich zum verzweifeln.

1.) ich habe eine XML file (logisch  )
2.) ich parse sie mit DOM (funzt einwandfrei)
3.) habe in diese XML file folgende 2 TAGs ( neben vielen anderen, ist eigentlich ein InstallAnywhere Project file!)
       a.) <string><![CDATA[]]></string>
       b.) <string><![CDATA[${CS2HF_PACKED_DIR}]]></string>

     bei b.) ersetzte ich das ${CS2HF_PACKED_DIR} durch einen String aus einer propertie file
     --> klappt alles wunder bar.
     --> PROBLEM: wenn ich nun das document schliesen will, d.h. alle änderungen in die XML file zurück schreiben
     dann wird dies zwar gemacht, aber aus allen, im dokument vorkommenden, a.) wird aus
     <string><![CDATA[]]></string>  dass --> </string>

     --> XML Dokument is nich mehr gültig. ich schliese das dokument mit

```
this.transformer.transform(source, result);
```

ansonsen wird alles richtig geschrieben, halt nur wenn so ein cdata-section element leer ist, mach der so ne scheise.

an was kann das liegen???

danke für eure hilfe. 

gru wako


----------



## Bleiglanz (15. Okt 2004)

<string><![CDATA[]]></string> 

wird zu </string> ? meinst du <string/>?

das ist dasselbe, den Dokumente muss nach dem speichern gültig sein, XML Prozessoren können nicht auf gut Glück CDATA Elemente einfügen (brauchts auch gar nicht), normalerweise enthält das gespeicherte Dokument dann die "richtigen" Zeichen!

Ein <![CDATA[]]> wird einfach durch "Nichts" ersetzt, es ist ja auch "Nichts", denk mal drüber nach


----------



## Guest (15. Okt 2004)

also ist ein </string> aleine ein gültiger xml tag?

naja, wenn es denn so ist hab ich ein problem, denn installanywhere will da umbedingt ein
<string><![CDATA[]]></string> 
haben.

habs jetzt anders gelöst ohne DOM...auf die gute alte art...
BufferedReader immer zeilenweise einlesen, parsen und gegebenfalls was ändern
BufferedWriter neue Datei schreiben 

danke aber trotzdem.
bin dennoch der meinung das beim zurückschreiben aller elemente aus dem speicher so etwas 
nicht sein darf...vielleicht isses ja auch ein bug 

egal, thx wako


----------



## foobar (15. Okt 2004)

> also ist ein </string> aleine ein gültiger xml tag?


Nein, das ist ein schließender Tag. Du meinst bestimmt <string/>. Wobei <string/> nur eine andere Schreibweise ist für <string></string>. Deshalb wird <string/> auch Empty-Element genannt.


----------

