Entra

View Full Version : Java e xml


supertonno
20-05-2004, 20:38
Ciao a tutti.
Ho un problema con la scrittura di un file xml.
Utilizzo le jaxp di SUN.
Praticamante creo un file xml con codice java e scrivo su disco, ma la scrittura non avviene. Il compilatore non mi da errore.
Non so il perche.
Utilizzo il parser DOM di sun
Posto qui sotto il codice.
Vedete voi.
Grazie


import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
//import com.sun.xml.tree.XmlDocument;

public class xml1 {

private Document userfile;

public void CreaFile(){
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating( true );
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();

doc.appendChild(doc.createElement("users"));
Element userRoot = doc.getDocumentElement();
Element username = doc.createElement("user");

username.appendChild(doc.createTextNode("bastiane"));
userRoot.appendChild(username);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer serializer = transformerFactory.newTransformer();
serializer.transform(new DOMSource( doc ), new StreamResult(new FileOutputStream("intro1.xml") ) );
}
catch(Exception e){
e.printStackTrace();
}
}

public static void main(String args[]){
xml1 a=new xml1();
a.CreaFile();
}
}

Hawke
21-05-2004, 07:49
Ciao,
per poter completare la scrittura devi effettuare il flush() ed il close() sull'istanza del FileOutputStream.

Byez
Hawke

texerasmo
21-05-2004, 12:17
se poi devi elaborare i dati con xml sempre tramite java puoi usare sax e molto + veloce e affidabile
http://forum.hwupgrade.it/showthread.php?s=&threadid=660373&highlight=sax+xml
Oppure puoi usare un parser come xalan e utilizzare xsl

supertonno
21-05-2004, 13:54
Sapete che e molto strano...
Ho appeno riprovato senza chiudere il flusso.
Se lo eseguo da Sun One 4 CE non scrive il file, se invece lo lancio sa console si.
Strano...:confused:

PS Grazie mille le vostre risposte:)