Visualizzazione dei risultati da 1 a 8 su 8

Discussione: java e xml

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280

    java e xml

    ciao a tutti, sono giorni che cerco per la rete e ancora non ho capito come usare un file xml con java. c'è il dom, il xaps , il jdom e tantissimi altri.. ora quello che vi chiedo, potete mostrarmi un esempio minimale di come leggere/scrivere un semplicissimo file xml?? non c'ho capito niente magari senza l'installazione di librerie come jdom, il mio obbiettivo è solo leggere i tag, e scrivere, niente di pià difficile grazie anticipatamente..

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    122
    Ciao, non so se può esserti di aiuto...ma io per interpretare i file xml solitamente utilizzo il parser SAX
    ti posto un esempio di codice che magari può esserti di aiuto

    dati.xml

    <?xml version="1.0"?>
    <libri>
    <libro>
    <autore>pippo</autore>
    <titolo>primo titolo</titolo>
    <costo>11</costo>
    </libro>
    <libro>
    <autore>sandro</autore>
    <titolo>secondo titolo</titolo>
    <costo>34</costo>
    </libro>
    </libri>

    Loadxml.java

    import java.io.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*;

    public class Loadxml extends DefaultHandler
    {
    static public String file="dati.xml";
    static public String nodo;
    public static void main(String args[])
    {
    DefaultHandler handler = new Loadxml();
    SAXParserFactory factory = SAXParserFactory.newInstance();
    try
    {
    out = new OutputStreamWriter(System.out, "UTF8");
    SAXParser saxParser = factory.newSAXParser();
    saxParser.parse(file, handler);
    }
    catch (Throwable t) { t.printStackTrace(); }
    }

    static private Writer out;

    public void startElement(String namespaceURI,String lName,String
    qName,Attributes attrs)throws SAXException{
    String name = lName;
    if ("".equals(name)) {nodo=qName;}
    }

    public void endElement(String namespaceURI,String sName,String qName) throws
    SAXException{
    String name = sName;
    if ("".equals(name)) {nodo=qName;}
    }

    public void characters(char buf[], int offset, int len) throws SAXException{
    String s = new String(buf, offset, len);
    if(s.length()>1){
    if(nodo=="autore") System.out.println(nodo+"-> "+s);
    if(nodo=="titolo") System.out.println(nodo+"-> "+s);
    if(nodo=="costo") System.out.println(nodo+"-> "+s);
    }
    }
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    bene era proprio quello che cercavo, e se volessi scrivere un file xml??

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    il problema è che vorrei evitare di usare jdom perchè non so installarlo..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    scusate , io ho provato a fare questo con il codice di fegret..

    codice:
    public static class leggixml extends DefaultHandler
    {
    	static public String file="dati.xml";
    	static public String nodo;
    	
    	
    	public leggixml()
    	{
    		
    			DefaultHandler handler = new leggixml();
    			SAXParserFactory factory = SAXParserFactory.newInstance();
    
    			try
    			{
    			out = new OutputStreamWriter(System.out, "UTF8");
    			SAXParser saxParser = factory.newSAXParser();
    			saxParser.parse(file, handler);
    			}
    			catch (Throwable t) { t.printStackTrace(); }		
    			
    	}
    		static private Writer out;
    	
    		public void startElement(String namespaceURI,String lName,String
    		qName,Attributes attrs)throws SAXException{
    		String name = lName;
    		if ("".equals(name)) {nodo=qName;}
    		}
    
    		public void endElement(String namespaceURI,String sName,String qName) throws
    		SAXException{
    		String name = sName;
    		if ("".equals(name)) {nodo=qName;}
    		}
    
    		public void characters(char buf[], int offset, int len) throws SAXException{
    		String s = new String(buf, offset, len);
    		int posti = 0;
    	//	String[] nomesale = null;
    
    	if(s.length()>1){
    if(nodo=="autore") System.out.println(nodo+"-> "+s);
    if(nodo=="titolo") System.out.println(nodo+"-> "+s);
    if(nodo=="costo") System.out.println(nodo+"-> "+s); 
    
    		}
    		
    		}
    }
    perchè tutto il codice non deve stare nel main, posso capire dove sta il mio errore? grazie..

  7. #7
    Originariamente inviato da magicofred
    il problema è che vorrei evitare di usare jdom perchè non so installarlo..
    Io ho sempre usato Jdom ed è comodissimo, basta scaricare la librearia .jar e aggiungerla e aggiungerla al path....se poi usi ecliplse basta solo importarla come libreria esterna!

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da mestablesta
    guarda questa guida:

    http://www.javastaff.com/article.php...60728205624716
    :O
    Non sono solo io a spammare i miei articoletti in giro per i forum...

    Originariamente inviato da magicofred
    il problema è che vorrei evitare di usare jdom perchè non so installarlo..
    Nella miniguida linkata da mestablesta spiego come fare ad usarlo, basta leggere il paragrafo "Compilare ed eseguire programmi con jdom"
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.