Sax Parser

Status
Nicht offen für weitere Antworten.

Stephan2009

Aktives Mitglied
Hallo ich habe eine XML Datei mit dem Sax Parser eingelesen und zwar so :

Java:
 /**
	 * The function parsed a xml file and saves it into file
	 */
	
	public static void parse() throws FileNotFoundException,
	IOException, SAXException, XMLStreamException {
	
	//DataStorageAccess dataStorageAccess = DataStorageAccess.getInstance();
	
	FileInputStream in = new FileInputStream(file); 
	
	// write parsed XML into File
	
	FileWriter out=new FileWriter("parsed_xml.txt");
	
	XMLInputFactory factory = XMLInputFactory.newInstance(); 
	XMLEventReader parser = factory.createXMLEventReader( in ); 
	StringBuilder spacer = new StringBuilder(); 
	
	while ( parser.hasNext() ) 
	{ 
	  XMLEvent event = parser.nextEvent(); 
	  switch ( event.getEventType() ) 
	  { 
	    case XMLStreamConstants.START_DOCUMENT: 
	      //System.out.println( "START_DOCUMENT:" ); 
	      out.write("START_DOCUMENT:"+"\n");
	      break; 
	    case XMLStreamConstants.END_DOCUMENT: 
	      //System.out.println( "END_DOCUMENT:" );
	      
	    	out.write("END_DOCUMENT:" +"\n");
	      
	    	parser.close(); 
	      
	    	break; 
	    
	    case XMLStreamConstants.START_ELEMENT: 
	      StartElement element = event.asStartElement(); 
	      spacer.append( "  " ); 
	      
	      out.write(( spacer.toString() 
	                          + "START_ELEMENT: " 
	                          + element.getName() +"\n")); 
	      for ( Iterator<?> attributes = element.getAttributes(); 
	            attributes.hasNext(); ) 
	      { 
	        Attribute attribute = (Attribute) attributes.next(); 
	        out.write( spacer.toString() + "  Attribut: " 
	                            + attribute.getName() + " Wert: " 
	                            + attribute.getValue() +"\n"); 
	      } 
	      
	      break; 
	    
	    case XMLStreamConstants.CHARACTERS: 
	      Characters characters = event.asCharacters(); 
	      if ( ! characters.isWhiteSpace() ) 
	    	  out.write(spacer.toString() 
	                            + "  CHARACTERS: " 
	                            + characters.getData() +"\n"); 
	      break; 
	    
	    case XMLStreamConstants.END_ELEMENT: 
	    	out.write(spacer.toString() 
	                          + "END_ELEMENT: " 
	                          + event.asEndElement().getName() +"\n"); 
	      spacer.delete( (spacer.length() - 2), spacer.length() ); 
	      
	      break; 
	    
	    case XMLStreamConstants.ATTRIBUTE: 
	      break; 
	    default : 
	      break; 
	  } 
	}
	}

Das funktioniert soweit , nun möchte ich allerdings das die geparste Datei wieder zurück nach XML konvertiert wird wie kann man das machen ??

Danke für die Hilfe :)
 
G

Gelöschtes Mitglied 5909

Gast
das was du nimmst ist StAX und nicht SAX, aber schau dir mal die Klasse XMLEventWriter an
 

Stephan2009

Aktives Mitglied
Ja stimmt hast recht ich nutze Stax, den EventWriter hab ich mir schon angesehn allerdings schreibt er mir die übergebenen strings ja nur als XML aus das ist schonmal ganz gut aber ich habe vor dem EventWriter meine geparste xml datei einlesen zu lassen und er soll voll automatisch die strings die um geparsten dokument enthalten sind als xml format wieder auszugeben gibts da eine Möglichkeit für ich möchte mit dem Eventwriter nicht selbst strings hinzugeben.
 
G

Gelöschtes Mitglied 5909

Gast
wenn die xml dateien nicht besonders groß sind (kleiner als ca 50-100MB) würde ich dir ein XML Binding Framework empfehlen. Da arbeitest du nur nix mehr selber parsen und kannst es gleich auch wieder abspeichern.

z.B. JAXB oder EMF
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Gibt es XML-Parser-Bibliotheken XML & JSON 3
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
MiMa SAX-Parser beenden? XML & JSON 5
K GSON-Parser XML & JSON 6
K XML-Parser vs. XLST XML & JSON 4
L DOM Parser Implementieren XML & JSON 9
M SAX Parser implementieren XML & JSON 2
E Gibt es denn einen XML-Parser für JUnit-Tests? XML & JSON 6
D XSD Parser XML & JSON 1
T Neuer XML Parser!!! XML & JSON 33
J XML Parser anhand xsd erzeugen XML & JSON 2
H SAX Parser optimieren XML & JSON 5
H Sax Parser verschluckt teile XML & JSON 11
C XML SAX Parser XML & JSON 10
R Handler-Wechsel, SAX Parser bricht nach 8192 Byte ab XML & JSON 5
B SAX-Parser - Dokumente einlesen und in einer Map ablegen XML & JSON 2
S Sax Parser Performance XML & JSON 2
M Eigener XML-Parser XML & JSON 1
S Typsicherer HTML-Parser XML & JSON 5
S HTML Parser XML & JSON 2
B Parser und Fabrik XML & JSON 6
F SAX Parser siehe nichts auf dem Konsole weder eine Fehlermeldung noch eine Ergebnis XML & JSON 6
enne87 SAX-Parser XML & JSON 5
C Mit SAX Parser XML Attribute auswerten XML & JSON 3
H XML-Parser: geparste Strings in Konstruktor? XML & JSON 9
S DOM Parser XML & JSON 12
D Speicherüberlauf bei character-Methode mit SAX-Parser XML & JSON 3
Y Welchen XML Parser / Klassen aus XSD generieren lassen XML & JSON 4
H Brauche ich einen speziellen XML-Parser? XML & JSON 2
M Unhierarchisches XML-File mit DOM-Parser auswerten XML & JSON 5
G XML Parser Fehler, zwei gleiche kind-Elemente XML & JSON 7
S Welcher XML-Parser am besten? XML & JSON 4
S Parser XML & JSON 2
S JAVA XML Parser der einen String parst XML & JSON 3
Noar XML-Parser mit GUI? XML & JSON 2
R Problem mit SAX-Parser characters() XML & JSON 7
K SAX Parser Character Puffer zu klein XML & JSON 2
B Mit Sax-Parser validieren XML & JSON 7
Wildcard xpath Parser XML & JSON 8

Ähnliche Java Themen

Neue Themen


Oben