# XML Verarbeitung



## TRunKX (27. Sep 2005)

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!


----------



## byte (27. Sep 2005)

ich empfehle dir JDOM, das ist recht intuitiv.

http://www.jdom.org


----------



## marvin (27. Sep 2005)

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");



```
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::


```
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.


```
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 (27. Sep 2005)

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!


----------



## jmaster (13. Jan 2006)

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


----------



## clemson (13. Jan 2006)

hier findest du alle konstruktoren der Klasse Attribute...

und das wird dir sicher sehr behilflich sein


----------

