Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    creare file XML da un file di testo

    Buongiorno a tutti
    sto cercando una soluzione (classe Java) per creare un file XML partendo da un file di testo. Esempio:
    leggo il file di testo che contiene le informazioni:

    ID 1
    utente: Paolo, Pollame (Milano)

    ID2
    utente: Massimo, Volume (Roma)

    e genero l'XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <utenti>
    <utente>
    <id>1</id>
    <nome>Paolo</nome>
    <cognome>Pollame</cognome>
    <indirizzo>Milano</indirizzo>
    </utente>
    <utente>
    <id>2</id>
    <nome>Massimo</nome>
    <cognome>Volume</cognome>
    <indirizzo>Roma</indirizzo>
    </utente>
    </utenti>


    grazie a tutti per l'help, sono giorni che ci sbatto la testa ma non ne vengo a capo.
    grazie ancora

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

    Re: creare file XML da un file di testo

    Originariamente inviato da jrm
    sto cercando una soluzione (classe Java) per creare un file XML partendo da un file di testo.
    XML è poi banalmente un file di testo ... nessuno vieterebbe di scriverlo pedestremente con una delle classi di I/O orientate ai caratteri.
    Ma in genere questo non si fa. Ci sono svariate regole da rispettare nel XML e comunque per le parti di testo ci sarebbe da convertire i caratteri speciali in entità apposite.

    Di norma si usano delle API e librerie già fatte. Si può sfruttare la API di JAXP per creare il Document (l'albero dei nodi) in memoria e poi scriverlo su file. O si può sfruttare JDOM (altra libreria esterna per manipolare XML).
    Esiste anche JAXB, una API apposita per fare il "binding" tra classi e tag XML. Cioè avere oggetti es. Utente e poi fare quello che si chiama "marshalling" per generare il file XML.

    Le possibilità sono svariate, dipende da cosa eventualmente conosci già di queste API, quale versione di Java intendi usare e da cosa/quanto devi gestire come dati di preciso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie per la risposta.
    Penavo di utilizzare la javax.xml.stream.XMLOutputFactory.
    Versione Java SE 1.6.
    Il file di input è un txt che contiene dati formattati all'incirca nel seguente modo:

    *I COD 0000011
    *I USER Paolo, Paolino
    *I CITTA Milano

    *I COD 0000014
    *I USER Gianni, Giovanni
    *I CITTA Napoli

    ogni entry contiene anche altre informazioni oltre a quelle riportate; in tutto ci sono alcune migliaia di utenti (entry) nel file txt.
    Devo fare in modo che il file venga letto in maniera sequenziale e venga generato un file formato XML con la struttura che ho descritto precedentemente.

    COD, USER, CITTA scompaiono e i dati ad essi riferiti devono essere inseriti nella struttura XML. COD diventa <id></id> USER diventa <utente></utente> ... e così via.

    In pratica pensavo di leggere ogni stringa compresa tra il primo *I COD ed il secondo, effettuare un parsing con Matcher e Parser ed inserire i dati in maniera opportuna nell'XML.
    Quello che attualmente non riesco a realizzare è il ciclo che itera sulle stringhe e popola l'XML.
    Grazie per l'aiuto

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.