XML Verarbeitung

Status
Nicht offen für weitere Antworten.

TRunKX

Bekanntes Mitglied
Also Leute ich habe folgendes Problem ich soll hier ne XML Verarbeitung in Java machen und wusele mich seit 2 Tagen durch DOM und Transformer und Nodes und Documents und habe biher noch null Peil wo ich anfangen soll.

Hat Jemand mal was geschrieben wo man XML einlesen kann oder neu erstellen kann oder Sachen hinzufügen bzw. ändern kann und das alles in einer Klasse?

Ansonsten werde ich wohl wa komplett eigenes erarbeiten müssen...... Oder nen Tip wo ich einsteige!
 

marvin

Mitglied
Ich poste dir mal ein paar Fragmente von mir, vielleicht helfen die dir ja weiter:

Das ist mein Konstruktor, an den ich mein XML file uebergebe(Falls bereits eine XML besteht die du veraendern willst). Also vorher irgendwo:

File file = new File("irgendwas.xml");


Code:
public XMLParser(File aFile)  {

   File file = aFile;

   if (file.exists()) {

	  try {
		   saxBuilder = new SAXBuilder(false);           //validierend
		   document = saxBuilder.build(file);
		   docType = document.getDocType();   
		   multiroot = document.getRootElement();

	  } catch (JDOMException ex)  {
		  success = false;
		  ex.printStackTrace();
		  failureMessage = ex.getMessage();

	  } catch (Exception ex) {
		  success = false;
		  failureMessage = ex.getMessage();
	  }

   } else {
		 success = false;
		 failureMessage = "Datei "+ file.getAbsolutePath() + " nicht gefunden";
		 
		 System.out.println(failureMessage);
   }

}


und dann kannst du damit arbeiten:


zum beispiel::

Code:
	Element myElement = new Element("name");
	myElement.setAttribute( new Attribute("name", wert));
	multiroot.addContent(myElement);
	File outFile = new File( irgendwas.xml);
	
	try {

		FileOutputStream outStream = new FileOutputStream( outFile );
		XMLOutputter out = new XMLOutputter();
		out.output( document, outStream );

	} catch ( java.io.IOException ex) {
		ex.printStackTrace();
	}

Achso diese imports hab ich drin, wirst du natuerlich nicht alle brauchen, nur damit du es mal siehst.

Code:
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;

import javax.swing.JOptionPane;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.fop.apps.Driver;
import org.apache.fop.messaging.MessageHandler;
import org.jdom.Attribute;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.Namespace;


Hoffe ich konnte dir en bissl helfen

mfg

Marvin Hegen
 

TRunKX

Bekanntes Mitglied
Hilft mir beides danke. Naja ich seh es aber kommen das ich mich echt in die Sun Klassen einarbeiten muss. Weil ich hier schon was vom chef habe was schon einigermassen geht aber irgendwie fehlen da noch möglichkeiten. Danke ich werde auf der Basis dessen was hier steht nochmal ganz von unten anfangen und mir die Dateien manuell zusammensetzen!
 
J

jmaster

Gast
habe hier ne frage habe da mal den geposteten code verwendet:

aber bei dieser zeile:

myElement.setAttribute( new Attribute("MAXINTERN", 2));

kommt bei mir immer der Fehler das der Konstruktor von Attrbute is undefined...

was muss ich denn jetzt da abändern? ich dachte bei euch funktioniert dieser code....

greetz
 
Status
Nicht offen für weitere Antworten.

Oben