Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    [Java] Ottenere dati da XML (semplice aiuto)

    Salve a tutti, sono alle prime armi nella manipolazione, da java, dei file XML...avendo questo semplice file con la seguente struttura...

    <?xml version="1.0" ?>
    <ROOT>
    <NAME>Mario</NAME>
    <SURNAME>Rossi</SURNAME>
    <EMAIL>mario.rossi@email.it</EMAIL>
    </ROOT>

    ...qualcuno potrebbe postarmi del codice di esempio di una classe java che mi permetta di avere in delle variabili, oggetti a piacimento di questo XML? tipo ottenere la root, o la lista dei nodi e i vari valori?

    Grazie a tutti anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    UP!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    sono riuscito a leggere le informazioni di un xml di prova...ma riesco a leggere solo i nomi dei nodi e non i valori!!! Cosa non và???

    Questo è il codice
    codice:
    String xmlFile = "file:c:/prova.xml";
    		
    		//Istanziamo un DOM Parser
            DOMParser parser = new DOMParser();
            
            //Facciamo il parsing del documento
            parser.parse(xmlFile);
            Document document = parser.getDocument();
            document.normalize();
            
            Element root = document.getDocumentElement();
            System.out.println(root.getNodeName());
            
            NodeList children = root.getChildNodes();
            for (int i=0; i<children.getLength(); i++){
            	
            	System.out.println(children.item(i).getNodeName());
            
            }
            
            
            NamedNodeMap map = root.getAttributes();
            for (int i=0; i<map.getLength(); i++){
            	
            	System.out.println(map.item(i).getNodeValue());
            
            }

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    up...

  5. #5
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao.
    Il problema è che il valore del nodo è un nodo di tipo text quindi non riesci a recuperarlo direttamente con getNodeValue().
    Dovresti fare una cosa del tipo:

    codice:
    String xmlFile = "file:c:/prova.xml";
    		
    		//Istanziamo un DOM Parser
            DOMParser parser = new DOMParser();
            
            //Facciamo il parsing del documento
            parser.parse(xmlFile);
            Document document = parser.getDocument();
            document.normalize();
            
            Element root = document.getDocumentElement();
            System.out.println(root.getNodeName());
            
            NodeList children = root.getChildNodes();
            for (int i=0; i<children.getLength(); i++){
            	
            	System.out.println(children.item(i).getNodeName());
                     String aNodeValue = children.item(i).getFirstChild().getNodeValue();
            
            }
            
            //Tieni presente che questa istruzione ti ritorna gli attributi associati a root e ora non dovrebbe darti nulla.
            NamedNodeMap map = root.getAttributes();
            for (int i=0; i<map.getLength(); i++){
            	
            	System.out.println(map.item(i).getNodeValue());
            
            }
    Prova non ho testato il codice ma dovrebbe andare. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Grazie per la risposta...ma non ho capito bene cosa devo fare...come dici tu, mandandolo in esecuzione non mi stampa niente perchè è riferito a ROOT..e allora? per ottenere i valori dei tag NAME, SURNAME ed EMAIL??? come diventa il codice? cosa devo fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Ho capito che c'è un problema in quello che faccio e cioè, usando il metodo getNodeType() (o getNodeName()), ho visto che mi viene restituito #document...cioè il mio XML è di tipo #document...cercando, ho trovato una tabella con i tipi di "Node"...in questa tabella il tipo #document riporta sempre "null" come value di un nodo...significa dunque che non potrò mai ottenere il valore del nodo...? Ma come cacchio si fa, da un XML banale come quello che ho postato, ad ottenere nodi, nodi figli e valori??? E' COSI' DIFFICILE!!!????

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