Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di suxt
    Registrato dal
    May 2001
    Messaggi
    97

    Validazione XML se compilato correttamente

    Ciao a tutti,

    esiste qualche classe per controllare se un XML è stato scritto correttamente? Non mi interessa fare un controllo su uno schema per vedere se la struttura e i dati sono corretti, mi interessa solo gestire l'eccezione nel caso ci siano tag aperti o altri errori nella struttura dell'XML. Qualcuno ha già fatto in passato una cosa del genere? Grazie 1000!!!
    www.comxcase.com

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Basta aprirlo con una qualsiasi libreria JDOM, DOM4J o SAX: se il file non è well-formed darrano eccezione.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di suxt
    Registrato dal
    May 2001
    Messaggi
    97
    Ma guarda, un veronese come me... Grazie della risposta, ma scusa la mia ignoranza, cosa intendevi a livello pratico? Lavoro su Java da 2 mesi molte cose sono ancora oscure per me...
    www.comxcase.com

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da suxt Visualizza il messaggio
    cosa intendevi a livello pratico? Lavoro su Java da 2 mesi molte cose sono ancora oscure per me...
    Esistono svariate API e librerie esterne per manipolare documenti XML. E purtroppo è facile andare "nel pallone" data la vastità di possibilità.

    Il seguente codice sfrutta la API JAXP per usare un parser SAX che chiaramente deve essere presente (da Java 5 ... o 1.4? non ricordo) esiste un parser integrato "di serie" nel framework standard.

    codice:
    import java.io.*;
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    
    public class TestXml {
        public static void main(String[] args) {
            File f = new File(args[0]);
            try {
                parseXmlFile(f);
                System.out.println("OK");
            } catch (Exception e) {
                System.out.println(e);
            }
        }
    
        public static void parseXmlFile(File xmlFile)
                throws ParserConfigurationException, SAXException, IOException {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
            parser.parse(xmlFile, new DefaultHandler());  // non serve qui ricevere gli eventi
        }
    }

    Se il file XML è well-formed (e non ci sono chiaramente problemi di I/O o altro), allora stampa OK.
    Altrimenti se il XML è "malformato" (es. tag non chiusi, sovrapposti, ecc....), allora lancia un SAXException con una descrizione tipo (provato ora sul momento):

    org.xml.sax.SAXParseException; systemId: file:/C:/blablabla/file.xml; lineNumber: 4; columnNumber: 3; Il tipo di elemento "xyz" deve terminare con la corrispondente tag finale "</xyz>".
    Ultima modifica di andbin; 21-05-2014 a 18:08
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.