Zeilenumbrüche in der XML-Datei vor dem Root-Knoten hinzufügen

8

Ich versuche, einen Zeilenumbruch nach meinen Kommentaren oberhalb des Wurzelknotens im XML-Dokument hinzuzufügen.

Ich brauche so etwas:

%Vor%

Aber was ich bekommen konnte, ist dies (Zeilenumbruch innerhalb der Wurzel, aber ich brauche einen Zeilenumbruch nach dem Kommentar):

%Vor%

Ich muss den Zeilenumbruch direkt nach meinem Kommentar hinzufügen. Gibt es eine Möglichkeit, dies zu tun?

Mein Code:

%Vor%     
Murali Krishna 03.07.2014, 11:02
quelle

3 Antworten

7

Sie möchten grundsätzlich einen Textknoten mit einem Zeilenumbruch nach dem Kommentarknoten.

%Vor%

BEARBEITEN : An den Wurzelknoten eines org.w3c.dom.Document ist es anscheinend nicht möglich, auch nur textuelle Leerzeichen anzuhängen. Das ist zu 100% formal korrekt, aber auch nicht hilfreich.

Die Art und Weise, wie Kommentare in der Ausgabe von Transformer dargestellt werden, wird durch den verwendeten Serializer bestimmt (es gibt verschiedene Serializer für HTML-, XML- und Klartextausgaben). Im eingebauten XML-Serializer wird das Ende eines Kommentars als --> - ohne Zeilenumbruch definiert.

Da die Interna von javax.xml.transform.Transformer fest verdrahtet sind, sind die Serialisierer keine öffentliche API und die Klasse ist als final gekennzeichnet. Das Überschreiben dieses Verhaltens oder das Setzen eines benutzerdefinierten Serialisierers ist unmöglich.

Mit anderen Worten, Sie haben kein Glück, Ihren Zeilenumbruch auf clean hinzuzufügen.

Sie können es jedoch leicht unrein hinzufügen:

%Vor%

Es wird davon abgeraten, Such- und Ersetzungsoperationen für XML-Strings durchzuführen, aber in diesem Fall kann wenig passieren, was schief gehen kann.

    
Tomalak 03.07.2014, 11:16
quelle
2

Ich habe es nach einiger Zeit noch einmal gesehen, weil ich das gleiche Problem hatte. Ich habe eine andere Lösung gefunden, die die Ausgabe in einem String nicht puffern muss:

  1. Schreiben Sie nur die XML-Deklaration, indem Sie ein leeres Dokument übergeben. Dies wird auch einen Zeilenumbruch anfügen.

  2. Schreiben Sie den Dokumentinhalt ohne XML-Deklaration

Code:

%Vor%     
Axel 02.06.2017 07:47
quelle
0

Sie erreichen dies, indem Sie den Kommentarknoten nicht zu Ihrem Dokument hinzufügen, sondern Ihr Dokument teilweise umwandeln. Zuerst transformieren Sie Ihre eigene XML-Verarbeitungsanweisung und kommentieren Sie sie separat, und dann den Rest des Dokuments:

%Vor%     
eddo 12.12.2017 15:29
quelle

Tags und Links