java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > XML und Co.

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 25.12.2006, 08:56   #1 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 19.01.2005
Fachbeiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Programm das XML Code erzeugt geht aber nicht mit FileWriter

Ich habe folgendes Programm, der XML Code erzeugt und der ebenfalls einwandfrei funktioniert
Code:
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class XmlExporter
{
    Document doc = null;
    Element RTP_Optionen = null;
    Element Effekt = null;

    static public void main(String [] args )
    {
        XmlExporter XD = new XmlExporter();
        XD.doc = XD.neuesDoc();
        XD.printDOMTree(XD.doc);
    }
    
    public Document neuesDoc()
    {
        DocumentBuilderFactory docBFac;
        DocumentBuilder docBuild;
        
        try
        {
            docBFac = DocumentBuilderFactory.newInstance();
            docBuild = docBFac.newDocumentBuilder();
            doc = docBuild.newDocument();
        }
        
        catch( Exception e )
        {
            System.out.println("Dokument konnte nicht erzeugt werden");
        }
        
        if (doc != null)
        {
            Element root = doc.createElement("GUI");
            //Aufbau: root.setAttribute("type", "Das_ist_die_Typart");
  
            //Auflistung der RTP Optionen
            RTP_Optionen = doc.createElement("RTP_Optionen");
  
            Element Empfaenger_IP = doc.createElement("Empfaenger_IP");
            Empfaenger_IP.appendChild(doc.createTextNode("127.0.0.1"));
            RTP_Optionen.appendChild(Empfaenger_IP);
  
            Element Port_Nummer = doc.createElement("Port_Nummer");
            Port_Nummer.appendChild(doc.createTextNode("2405"));
            RTP_Optionen.appendChild(Port_Nummer);
  
            root.appendChild(RTP_Optionen);

            //Auflistung der Effekt Optionen        
            Effekt = doc.createElement("Effekt");
        
            Element Beginn = doc.createElement("Beginn");
            Beginn.appendChild(doc.createTextNode("0"));
            Effekt.appendChild(Beginn);
  
            Element Dauer = doc.createElement("Dauer");
            Dauer.appendChild(doc.createTextNode("0"));
            Effekt.appendChild(Dauer);
        
            Element Lautstaerke = doc.createElement("Lautstaerke");
            Lautstaerke.appendChild(doc.createTextNode("50"));
            Effekt.appendChild(Lautstaerke);
        
            Element Intensitaet = doc.createElement("Intensitaet");
            Intensitaet.appendChild(doc.createTextNode("50"));
            Effekt.appendChild(Intensitaet);
  
            root.appendChild(Effekt);
        

            doc.appendChild(root);
    
        }
        
        return doc;
  }
    
/** Prints the specified node, recursively. */
    public void printDOMTree(Node node ) 
    {
        int type = node.getNodeType();
        switch (type)
        {
        // document element ausgeben
        case Node.DOCUMENT_NODE: 
            {
                printDOMTree(((Document)node).getDocumentElement() );
                break;
            }

       // Element ausgeben mit Attributen
      case Node.ELEMENT_NODE: 
        {
            System.out.print("<");// Anfangstag
            System.out.print(node.getNodeName());
            NamedNodeMap attrs = node.getAttributes();
            for (int i = 0; i < attrs.getLength(); i++)
            {
                Node attr = attrs.item(i);
                System.out.print(" " + attr.getNodeName() + "=\"" + attr.getNodeValue() + "\"");
            }
            System.out.print(">");// Endtag

            NodeList children = node.getChildNodes();
            if (children != null)
            {
                int len = children.getLength();
                for (int i = 0; i < len; i++)
                printDOMTree(children.item(i));
            }

            break;
        }

        //  entity reference nodes behandeln
          case Node.ENTITY_REFERENCE_NODE: 
        {
        System.out.print("&");
          System.out.print(node.getNodeName());
          System.out.println(";");
          break;
        }

        // 'cdata sections' ausgeben
          case Node.CDATA_SECTION_NODE: 
        {
          System.out.print("<![CDATA[");
          System.out.print(node.getNodeValue());
          System.out.println("]]>");
          break;
        }

        // Text ausgeben
          case Node.TEXT_NODE: 
        {
          System.out.print(node.getNodeValue());
          break;
        }

        // 'processing instruction' ausgeben
          case Node.PROCESSING_INSTRUCTION_NODE: 
        {
          System.out.println("<?");
          System.out.print(node.getNodeName());
          String data = node.getNodeValue();
          {
            System.out.print(" ");
            System.out.print(data);
          }
          System.out.println("?>");
          break;
        }
    }

    if (type == Node.ELEMENT_NODE)
    {
      System.out.print("</");
      System.out.print(node.getNodeName());
      System.out.println('>');
    }
  } // DOMTree(Node, PrintWriter)
}
Das Problem ist, dass ich jetzt einen FileWriter einbauen wollte, damit er die Parameter von unserem Hauptprogramm mithilfe dieses XML Exporter dort abspeichern kann. Obwohl am Code eigentlich nicht wirklich was fundamentales geändert wurde, sondern nur Writer eingebaut wurde und ich alle System.out passend umändern ließ, damit er es in die Datei schreibt (die er auch richtig erzeugt, aber eben nur halbert schreibt) und ich keinen Fehler finden kann, weiß ich nicht mehr, woran da liegen kann und würde mir sehr freuen, wenn mir jemand helfen könnte. So schaut jetzt der für den Writer geänderte Code aus
Code:
// fuer XML und DOM
import org.w3c.dom.*;
import javax.xml.parsers.*;

//fuer Writer
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class XmlExporter
{
    Document doc = null;
    Element RTP_Optionen = null;
    Element Effekt = null;

    static public void main(String [] args ) throws IOException 
    {
        XmlExporter XD = new XmlExporter();
        XD.doc = XD.neuesDoc();
        XD.printDOMTree(XD.doc);
    }
    
    public Document neuesDoc()
    {
        DocumentBuilderFactory docBFac;
        DocumentBuilder docBuild;
        
        try
        {
            docBFac = DocumentBuilderFactory.newInstance();
            docBuild = docBFac.newDocumentBuilder();
            doc = docBuild.newDocument();
        }
        
        catch( Exception e )
        {
            System.out.println("Dokument konnte nicht erzeugt werden");
        }
        
        if (doc != null)
        {
            Element root = doc.createElement("GUI");
            //Aufbau: root.setAttribute("type", "Das_ist_die_Typart");
  
            //Auflistung der RTP Optionen
            RTP_Optionen = doc.createElement("RTP_Optionen");
  
            Element Empfaenger_IP = doc.createElement("Empfaenger_IP");
            Empfaenger_IP.appendChild(doc.createTextNode("127.0.0.1"));
            RTP_Optionen.appendChild(Empfaenger_IP);
  
            Element Port_Nummer = doc.createElement("Port_Nummer");
            Port_Nummer.appendChild(doc.createTextNode("2405"));
            RTP_Optionen.appendChild(Port_Nummer);
  
            root.appendChild(RTP_Optionen);

            //Auflistung der Effekt Optionen        
            Effekt = doc.createElement("Effekt");
        
            Element Beginn = doc.createElement("Beginn");
            Beginn.appendChild(doc.createTextNode("0"));
            Effekt.appendChild(Beginn);
  
            Element Dauer = doc.createElement("Dauer");
            Dauer.appendChild(doc.createTextNode("0"));
            Effekt.appendChild(Dauer);
        
            Element Lautstaerke = doc.createElement("Lautstaerke");
            Lautstaerke.appendChild(doc.createTextNode("50"));
            Effekt.appendChild(Lautstaerke);
        
            Element Intensitaet = doc.createElement("Intensitaet");
            Intensitaet.appendChild(doc.createTextNode("50"));
            Effekt.appendChild(Intensitaet);
  
            root.appendChild(Effekt);
        
            doc.appendChild(root);
        }
        return doc;
  }
    
    // git die Knoten rekursiv aus
    public void printDOMTree(Node node ) throws IOException 
    {
        //File Writer
        File datei = new File("ausgabe.xml");
        FileWriter ausgabeStrom = new FileWriter(datei);
            
        PrintWriter ausgabe = new PrintWriter(ausgabeStrom); // scheibt alles nach System.out
        
        int type = node.getNodeType();
        switch (type)
        {
            // document element ausgeben
            case Node.DOCUMENT_NODE: 
            {
                printDOMTree(((Document)node).getDocumentElement() );
                break;
            }

       // Element ausgeben mit Attributen
        case Node.ELEMENT_NODE: 
        {
            ausgabe.print("<");// Anfangstag
            ausgabe.print(node.getNodeName());
            NamedNodeMap attrs = node.getAttributes();
            for (int i = 0; i < attrs.getLength(); i++)
            {
                Node attr = attrs.item(i);
                ausgabe.print(" " + attr.getNodeName() + "=\"" + attr.getNodeValue() + "\"");
            }
            ausgabe.print(">");// Endtag

            NodeList children = node.getChildNodes();
            if (children != null)
            {
                int len = children.getLength();
                for (int i = 0; i < len; i++)
                printDOMTree(children.item(i));
            }

            break;
        }

        //  entity reference nodes behandeln
          case Node.ENTITY_REFERENCE_NODE: 
        {
        ausgabe.print("&");
          ausgabe.print(node.getNodeName());
          ausgabe.println(";");
          break;
        }

        // 'cdata sections' ausgeben
          case Node.CDATA_SECTION_NODE: 
        {
          ausgabe.print("<![CDATA[");
          ausgabe.print(node.getNodeValue());
          ausgabe.println("]]>");
          break;
        }

        // Text ausgeben
          case Node.TEXT_NODE: 
        {
          ausgabe.print(node.getNodeValue());
          break;
        }

        // 'processing instruction' ausgeben
          case Node.PROCESSING_INSTRUCTION_NODE: 
        {
          ausgabe.println("<?");
          ausgabe.print(node.getNodeName());
          String data = node.getNodeValue();
          {
            ausgabe.print(" ");
            ausgabe.print(data);
          }
          ausgabe.println("?>");
          break;
        }
    }

    if (type == Node.ELEMENT_NODE)
    {
      ausgabe.print("</");
      ausgabe.print(node.getNodeName());
      ausgabe.println('>');
    }
    ausgabe.close(); // oder ausgabe.flush um Stream offen zu lassen
  } // DOMTree(Node, PrintWriter)
}
mtintel ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 25.12.2006, 15:54   #2 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 19.01.2005
Fachbeiträge: 4
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Habe den Fehler gefunden... also so funktioniert es jetzt:
Code:
// fuer XML und DOM
import org.w3c.dom.*;
import javax.xml.parsers.*;

//fuer Writer
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class XmlExporter
{
	Document doc = null;
	Element RTP_Optionen = null;
	Element Effekt = null;

	static public void main(String [] args ) throws IOException 
	{
		XmlExporter XD = new XmlExporter();
		XD.doc = XD.neuesDoc();
		XD.printDOMTree(XD.doc);
	}
	
	public Document neuesDoc()
	{
		DocumentBuilderFactory docBFac;
		DocumentBuilder docBuild;
		
		try
		{
			docBFac = DocumentBuilderFactory.newInstance();
			docBuild = docBFac.newDocumentBuilder();
			doc = docBuild.newDocument();
		}
		
		catch( Exception e )
		{
			System.out.println("Dokument konnte nicht erzeugt werden");
		}
		
		if (doc != null)
		{
			Element root = doc.createElement("GUI");
			//Aufbau: root.setAttribute("type", "Das_ist_die_Typart");
  
			//Auflistung der RTP Optionen
			RTP_Optionen = doc.createElement("RTP_Optionen");
  
			Element Empfaenger_IP = doc.createElement("Empfaenger_IP");
			Empfaenger_IP.appendChild(doc.createTextNode("127.0.0.1"));
			RTP_Optionen.appendChild(Empfaenger_IP);
  
			Element Port_Nummer = doc.createElement("Port_Nummer");
			Port_Nummer.appendChild(doc.createTextNode("2405"));
			RTP_Optionen.appendChild(Port_Nummer);
  
			root.appendChild(RTP_Optionen);

			//Auflistung der Effekt Optionen        
			Effekt = doc.createElement("Effekt");
        
			Element Beginn = doc.createElement("Beginn");
			Beginn.appendChild(doc.createTextNode("0"));
			Effekt.appendChild(Beginn);
  
			Element Dauer = doc.createElement("Dauer");
			Dauer.appendChild(doc.createTextNode("0"));
			Effekt.appendChild(Dauer);
        
			Element Lautstaerke = doc.createElement("Lautstaerke");
			Lautstaerke.appendChild(doc.createTextNode("50"));
			Effekt.appendChild(Lautstaerke);
        
			Element Intensitaet = doc.createElement("Intensitaet");
			Intensitaet.appendChild(doc.createTextNode("50"));
			Effekt.appendChild(Intensitaet);
  
			root.appendChild(Effekt);
        
			doc.appendChild(root);
		}
		return doc;
  }
	
	// git die Knoten rekursiv aus
	   public void printDOMTree(Node node ) throws IOException
	   {
		   //File Writer
	        File datei = new File("ausgabe.xml");
	        FileWriter ausgabeStrom = new FileWriter(datei);
	            
	        PrintWriter ausgabe = new PrintWriter(ausgabeStrom); // scheibt alles nach System.out
	        _printDOMTree(node, ausgabe );
	        ausgabe.close(); // oder ausgabe.flush um Stream offen zu lassen
	        
	   }
	    
	    // git die Knoten rekursiv aus
	    private void _printDOMTree(Node node, PrintWriter ausgabe ) throws IOException 
	    {
	      
	        
	        int type = node.getNodeType();
	        switch (type)
	        {
	            // document element ausgeben
	            case Node.DOCUMENT_NODE: 
	            {
	                _printDOMTree(((Document)node).getDocumentElement(), ausgabe );
	                break;
	            }

	       // Element ausgeben mit Attributen
	        case Node.ELEMENT_NODE: 
	        {
	            ausgabe.print("<");// Anfangstag
	            ausgabe.print(node.getNodeName());
	            NamedNodeMap attrs = node.getAttributes();
	            for (int i = 0; i < attrs.getLength(); i++)
	            {
	                Node attr = attrs.item(i);
	                ausgabe.print(" " + attr.getNodeName() + "=\"" + attr.getNodeValue() + "\"");
	            }
	            ausgabe.print(">");// Endtag

	            NodeList children = node.getChildNodes();
	            if (children != null)
	            {
	                int len = children.getLength();
	                for (int i = 0; i < len; i++)
	                _printDOMTree(children.item(i), ausgabe);
	            }

	            break;
	        }

	        //  entity reference nodes behandeln
	          case Node.ENTITY_REFERENCE_NODE: 
	        {
	        ausgabe.print("&");
	          ausgabe.print(node.getNodeName());
	          ausgabe.println(";");
	          break;
	        }

	        // 'cdata sections' ausgeben
	          case Node.CDATA_SECTION_NODE: 
	        {
	          ausgabe.print("<![CDATA[");
	          ausgabe.print(node.getNodeValue());
	          ausgabe.println("]]>");
	          break;
	        }

	        // Text ausgeben
	          case Node.TEXT_NODE: 
	        {
	          ausgabe.print(node.getNodeValue());
	          break;
	        }

	        // 'processing instruction' ausgeben
	          case Node.PROCESSING_INSTRUCTION_NODE: 
	        {
	          ausgabe.println("<?");
	          ausgabe.print(node.getNodeName());
	          String data = node.getNodeValue();
	          {
	            ausgabe.print(" ");
	            ausgabe.print(data);
	          }
	          ausgabe.println("?>");
	          break;
	        }
	    }

	    if (type == Node.ELEMENT_NODE)
	    {
	      ausgabe.print("</");
	      ausgabe.print(node.getNodeName());
	      ausgabe.println('>');
	    }
	  
	  } // DOMTree(Node, PrintWriter)
}
mtintel ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JApplet geht in Eclipse, nicht aber im Browser r74 Java Basics - Anfänger-Themen 2 14.02.2009 07:44
Code kompilieren geht aber ausführen nicht evalixxo Java Basics - Anfänger-Themen 3 22.12.2008 21:36
Log-Datei wird nur in Eclipse aber nicht auf Tomcat erzeugt Java Basics - Anfänger-Themen 5 15.05.2008 09:42
Java.exe geht, aber Javac.exe nicht ? megachucky Java Basics - Anfänger-Themen 2 26.04.2006 06:14
for Schleife geht NICHT aber while GEHT? Java Basics - Anfänger-Themen 2 26.10.2005 08:58


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de