Java XML Datei parsen und DOM Struktur erstellen ohne "unnötige" Whitespaces

Wie gesagt, das was du als Whitespace ansiehst ist kein Whitespace. Das ist einfach Teil des W3C Java DOM Modells. Whitespace liegt hier vor:
XML:
<code>
  <listing>
    fooobarr
    fooobarr
  </listing>
</code>
Zwischen den beiden fooobarr Wörtern besteht whitespace, bzw. davor und danach.

Gruß
Ollie
 
Zuletzt bearbeitet von einem Moderator:
schönen guten morgen

hab mich damit abgefunden, dass ich die versteckten texte nicht wegbekomme, weil sie einfach da sind...

[Text entfernt, befindet sich in einem neuen Thema]
 
Zuletzt bearbeitet von einem Moderator:
Hallo Oliver,
das die Zeilenumbruche und Tabulatoren innerhalb deines Listing- Elementes mit zu deren Inhalt zählen seh ich auch so. Was mich eben stört das der Parser aus meinem Wurzelelement (wurzel) ein MixedContent- Element macht obwohl es nicht so gemeint ist ;) . Das der Parser nicht eindeutig zuordnen kann was Inhalt und was "gestalterisches" Whitespace ist, seh ich ja auch ein. Auf jeden Fall kann man dasProblem mit den oben genannten "Lösungen" (JDOM,DOM4J) umgehen :) .
Vielleicht sollte man sich angewöhne Umbrüche im Content grundsätzlich mit "<br />" wie in HTML zu kennzeichnen. Für Tabulator könnte man "<t />" nehmen ;).

Mein Problem war das ich:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<wurzel>
	<element>eins</element>
	<element>zwei</element>
</wurzel>
geschrieben habe und
Code:
<?xml version="1.0" encoding="UTF-8"?><wurzel><element>eins</element><element>zwei</element></wurzel>
gemeint habe.
 
@biturbogolf kannst du bitte für das thema einen neuen thread aufmachen? Wenn wir hier weiter zwei Themen diskutieren wirds unübersichtlich. Und stso war der Initialposter. Schreib mir ne PM, wenn du den neuen Thread angelegt hast, dann entfern ich die Postings hier aus diesem Thread.

@stso - das ist nicht ganz korrekt. Wie schon oben beschrieben kannst du den Typ Element benutzen und "siehst" dann nicht den vermeintlich leeren Textcontent. Das verhalten der API ist korrekt und auch sinnvoll. Es sind einfach zwei unterschiedlieche Abstraktionsniveaus. Wenn du ein richtiges Mapping von XML auf Objekte willst, dann benutz einen OX Mapper deiner Wahl (Castor, JAXB, XMLBeans) und du musst nicht mit dem Lowlevel API rumspielen.

Btw. würde dir der DOM Parser für das untere XML ebenfalls nen leeren Textnode für "wurzel" zurückgeben. Das ist nur ne Formatierungsfrage. Deine beiden XML Fragmente sind für einen DOM Parser definitiv das gleiche. Elemente für Formatierungen? Das hatten wir in HTML schon mal. XML ist dazu da Content zu strukturieren, nicht um schöne Umrüche zu machen ;).

Gruß
Ollie
 
Zurück