Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [Java] Sax Parser

  1. #1

    [Java] Sax Parser

    Salve a tutti, ho provato in tanti modi a creare un parser per l'estrazione di info da files xml.
    Ma tutti mi riportano lo stesso errore :

    Codice PHP:
    org.xml.sax.SAXParseExceptionThe markup in the document following the root element must be well-formed
    il mio file xml è di questa forma

    Codice PHP:
    <title>Aikido</title
    <
    id>751</id
    <
    revision> <id>94413171</id
    <
    timestamp>2006-12-15T01:13:01Z</timestamp
    <
    contributor
    <
    id>410898</id
    <
    username>PRehse</username
    </
    contributor
    <
    text xml:space="preserve">{{Infobox_martial_art 
    logo 
    logocaption 
    logosize 
    image G Blaize Kokiu Nague 2.JPG 
    imagecaption An aikido throw being practiced''Nage'' maintains balance and structure to throw ''uke'', while ''uke'' safely takes a forward roll (''zenp kaiten''). 
    imagesize 300px 
    name Aikido 
    aka 
    style = [[Grappling]] and strikes 
    country = {{flagicon|JPN}} [[Japan]] 
    creator = [[Morihei Ueshiba]] 
    parenthood Modern 
    famous_pract 
    olympic no 
    website = }}
    </
    text
    </
    revision
    Il mio codice java riesce (a volte) solo a prendere il contenuto del primo tag e poi mi dà l'errore.
    L'ho provato con altri dati xml e funziona alla grande.
    esempio con questo funziona
    Codice PHP:
    <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

    Come è possibile tutto ciò?

    Questo è il mio codice
    Codice PHP:

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

    public class 
    Parser extends DefaultHandler {

        public 
    void parse(File file) {
            try {
                
    SAXParserFactory parserFactory SAXParserFactory.newInstance();
                
    parserFactory.setValidating(false);
                
    parserFactory.setNamespaceAware(false);
                
    SAXParser parser parserFactory.newSAXParser();
                
    parser.parse(filethis);
            } catch (
    IOException exception) {

            }

            catch (
    SAXException exception) {

            }

            catch (
    ParserConfigurationException exception) {

            }

        }

        public 
    void characters(char[] chint startint length) {
            
    String s = new String(chstartlength);

        }

        public 
    void endDocument() {

            
    System.out.println("end document");

        }

        public 
    void endElement(String urlString localNameString qName) {
            
    System.out.println("end element");

        }

        public 
    void startDocument() {

            
    System.out.println("start document: ");

        }

        public 
    void startElement(String uriString localNameString qName,
                
    Attributes attributes) {
            
    System.out.println("start element: " qName);

        }

        public static 
    void main(String[] args) {

            
    Parser p = new Parser();
            
    p.parse(new File("dati.xml"));
        }


    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Sax Parser

    Originariamente inviato da peppino-1
    Codice PHP:
    org.xml.sax.SAXParseExceptionThe markup in the document following the root element must be well-formed
    il mio file xml è di questa forma
    Ti dice che non è "well-formed". Un documento XML è well-formed se rispetta una serie di regole base, legate principalmente alla sintassi/struttura dei tag. Ad esempio ci deve essere 1 solo tag radice, i nomi dei tag sono case-sensitive, quindi <abc></abc> ma non <Abc></abc>, ecc...

    Apri il documento xml con un browser es. IE o Firefox, ti dirà se è well-formed e se non lo è ti dirà qualcosa di più su dove/perché.

    Non ho analizzato bene il sorgente che hai postato ma comunque, ripeto, il problema è quasi certamente nel documento, non nel codice (che comunque è semplice per SAX, se hai capito la logica di uso).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Infatti il documento non è ben formato!! manca la radice dell'albero xml!! ciaoooo

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.