Einzug bei XSLTransformator erzeugen

Status
Nicht offen für weitere Antworten.

Tonipasta

Mitglied
Hallo! Ich bin langsam am verzweifeln. Ich möchte ein XML File transformieren. Und als Ausgabe soll eine "schöne" Formatierung erzeugt werden. Aber egal, ob Xalan, Saxon etc. ich bekomme das nicht hin. Hier mal mein Beispielcode:

Java:
import java.io.*;

import javax.xml.transform.*;
import javax.xml.transform.stream.*;
 
public class XSLTransformator {
 
 public static void main(String[] args) throws javax.xml.transform.TransformerException {
 
    File xmlFile  = new File("Test.xml");
    File xsltFile = new File("Prozessor.xsl");
 
    Source xmlSource  = new StreamSource(xmlFile);
    Source xsltSource = new StreamSource(xsltFile);
    
    Result result = new StreamResult(System.out);
		

    TransformerFactory transFact = TransformerFactory.newInstance( ); 
    Transformer trans = transFact.newTransformer(xsltSource);
	    	    
    trans.transform(xmlSource, result);		

  }
  
}


Die XML-Datei sieht so aus:
Java:
<?xml version="1.0"?>
<firma name="Company">
	<angestellte>
		<angestellter name="Heinz" alter="32"/>
		<angestellter name="Susi" alter="40"/>
	</angestellte>
</firma>


Und das Stylesheet:
Java:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <head>
            <title>
               <xsl:value-of select="firma/@name"/>
            </title>
        </head>
        <body>
               <xsl:value-of select="firma/@name"/>
	       <table border="2">
	          <xsl:for-each select="/firma/angestellte/angestellter">
                  <tr>
                    <td><xsl:value-of select="@name"/></td>
                    <td><xsl:value-of select="@alter"/></td>
                  </tr>
	          </xsl:for-each>
	       </table>
        </body>
      </html>
   </xsl:template>
</xsl:stylesheet>


Die Ausgabe sollte so aussehen:
Java:
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   
      <title>Company</title>
   </head>
   <body>Company
      <table border="2">
         <tr>
            <td>Heinz</td>
            <td>32</td>
         </tr>
         <tr>
            <td>Susi</td>
            <td>40</td>
         </tr>
      </table>
   </body>
</html>

Und bei mir fehlt immer der Einzug. Habe schon mal indent="yes" ins Stylesheet geschrieben, hat aber auch nichts geholfen. Ich würde gerne, das die Tiefe der Ebene der Tags vom Prozessor richtig erkannt und gesetzt werden. Jemand eine Idee?
 
S

SlaterB

Gast
zum Problem nicht direkt,
allerdings könntest du am Ende einen separaten Prozess über die Datei laufen lassen, der alle Tags einliest, die Baumstruktur versteht und eine Formatierung nach Baum-Tiefe durchführt

das nur als Idee, es selber zu programmieren, ob es das schon vorgefertigt gibt oder du nur bei obigen Programm einen Parametern ändern musst, kann ich nicht sagen
 

musiKk

Top Contributor
allerdings könntest du am Ende einen separaten Prozess über die Datei laufen lassen, der alle Tags einliest, die Baumstruktur versteht und eine Formatierung nach Baum-Tiefe durchführt

das nur als Idee, es selber zu programmieren, ob es das schon vorgefertigt gibt oder du nur bei obigen Programm einen Parametern ändern musst, kann ich nicht sagen

Gibts beides. Separat formatieren geht mit JTidy und der Transformer kann mittels[c]transformer.setOutputProperty(OutputKeys.INDENT, "yes")[/c] auch selbst formatieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Erzeugen einer openapi spec via swagger XML & JSON 1
W Erzeugen einer Handlerklasse zum Abfangen von SOAP-Requests XML & JSON 13
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
A GUI um auf XSD Basis (valide) XML Daten zu erzeugen XML & JSON 3
C XML erzeugen Tipps und Tricks XML & JSON 7
M JAXB versucht abstrakte Klasse zu erzeugen XML & JSON 7
J XML Parser anhand xsd erzeugen XML & JSON 2
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
H PDF erzeugen mit FOP(fo fehlerhaft) XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
R XSD aus Java Klassen erzeugen?? XML & JSON 2
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
P cxf: WSDL dynamisch erzeugen (zur Laufzeit) XML & JSON 7
F XML erzeugen aus JTree und wieder einlesen... XML & JSON 6
N Teilbaum aus DOM-Baum erzeugen XML & JSON 5
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
P XSD Schema: Konstanten mit "fixed" erzeugen geht nicht ??? XML & JSON 3
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
B jdom document aus string erzeugen? XML & JSON 1
H PDFs erzeugen mit Apache FOP XML & JSON 3
D XML Datei mit DOM erzeugen XML & JSON 6
G JAXB Objekte erzeugen XML & JSON 3
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
B DTD aus Java erzeugen XML & JSON 2
M PDF erzeugen aus Stringarray XML & JSON 1
G XML Dokument mit DOM erzeugen XML & JSON 9
S svg erzeugen XML & JSON 2
B org.w3c.dom.Node erzeugen XML & JSON 2
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
S Menüeinträge aus XML erzeugen XML & JSON 21
K xml Datei mit JDOM erzeugen, Problem Namespaces XML & JSON 1

Ähnliche Java Themen


Oben