Categorie
Winzipedia Uso dell'wiki |
Java /
JDOMJava.JDOM VersioniNascondi le modifiche minori - Mostra le modifiche Modificate le linee 2-4: da:
'''Autore:''' [[profiles.Andrea| Andrea Rota]] '''Hanno contribuito:''' a:
'''Autore:''' [[profiles.Andrea| Andrea Rota]] Modificate le linee 38-87: da:
!!'''Esempio DOM''' Dato un documento XML viene creata la struttura ad albero ''<i> project </i>'' : CDATA introduce del testo che il parser non deve elaborare ma deve essere solamente riportato senza effettuare modifiche. Quindi in questo caso dell'esempio vengono riportati anche i tag, che vengono mostrati su schermo. '''Caricamento di un DOM:''' librerie: import org.w3c.dom.* import java.xml.parsers.* import org.xml.sax.* ''DocumentBuilderFactory factory = DocumentBuilderFactory.newIstance();'' ''DocumentBuilder builder = factory.newDocumentBuilder();'' '''Navigazione:''' - Estrazione del nodo radice e stampa del nome del nodo: ''getNodeName()'' - Nodi figli: ''getChildNodes()'' - Attributi: ''getAttributes()'' '''Tipizzazione:''' - ''n.getNodeType() == Node.ELEMENT_NODE'' // tipo del nodo, verifica se n rappresenta un elemento e non un commento o un testo - Reflection: ''n.istanceof Element()'' - Polimorfismo: le librerie ritornano un'istanza della sottoclasse corretta! '''Validazione:''' ''factory.setValidating(true);'' // per renderlo valido '''Browsing e stampa:''' - ''getAttributes()'' // restituisce gli attributi della mappa creata - ''getNodeValue()'' // nel caso in cui sia un attributo ''Element root = doc.getDocumentElement();'' Dentro la stringa si accumulano i vari nomi dei testi che poi vengono visualizzati a schermo. '''Modifica dell'albero:''' a:
Modificate le linee 53-58: da:
DocumentBuilderFactory factory = DocumentBuilderFactory.newIstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(.); l a:
''DocumentBuilderFactory factory = DocumentBuilderFactory.newIstance();'' ''DocumentBuilder builder = factory.newDocumentBuilder();'' ''Document doc = builder.parse(.);'' L'oggetto doc tutte le informazioni avute dal parse del documento libro.xml Modificate le linee 61-64: da:
a:
- Estrazione del nodo radice e stampa del nome del nodo: ''getNodeName()'' - Nodi figli: ''getChildNodes()'' - Attributi: ''getAttributes()'' Modificate le linee 67-70: da:
- Reflection: n.istanceof Element()  Polimorfismo: a:
- ''n.getNodeType() == Node.ELEMENT_NODE'' // tipo del nodo, verifica se n rappresenta un elemento e non un commento o un testo - Reflection: ''n.istanceof Element()'' - Polimorfismo: le librerie ritornano un'istanza della sottoclasse corretta! Modificate le linee 73-74: da:
factory.setValidating(true); per renderlo valido a:
''factory.setValidating(true);'' // per renderlo valido Modificate le linee 76-82: da:
getNodeValue() il codice print fa l'elaborazione nodo padre concatenato con il nodo figlio Element root = doc.getDocumentElement(); print(root,); --> a:
- ''getAttributes()'' // restituisce gli attributi della mappa creata - ''getNodeValue()'' // nel caso in cui sia un attributo - il codice print fa l'elaborazione nodo padre concatenato con il nodo figlio (separati da un -) ''Element root = doc.getDocumentElement();'' ''print(root,);'' // la stringa iniziale la stringa vuota Modificate le linee 84-87: da:
''' Modifica dell'albero:''' Inserimento di nuovi elementi nell'albero: createElement(); a:
'''Modifica dell'albero:''' Inserimento di nuovi elementi nell'albero: ''createElement();'' Modificate le linee 40-87: da:
a:
!!'''Esempio DOM''' Dato un documento XML viene creata la struttura ad albero ''<i> project </i>'' : CDATA introduce del testo che il parser non deve elaborare ma deve essere solamente riportato senza effettuare modifiche. Quindi in questo caso dell'esempio vengono riportati anche i tag, che vengono mostrati su schermo. '''Caricamento di un DOM:''' librerie: import org.w3c.dom.* import java.xml.parsers.* import org.xml.sax.* DocumentBuilderFactory factory = DocumentBuilderFactory.newIstance(); DocumentBuilder builder = factory.newDocumentBuilder(); '''Navigazione:'''  Estrazione del nodo radice e stampa del nome del nodo: getNodeName()  Nodi figli: getChildNodes()  Attributi: getAttributes() '''Tipizzazione:''' - n.getNodeType() == Node.ELEMENT_NODE --> tipo del nodo, verifica se n rappresenta un elemento e non un commento o un testo - Reflection: n.istanceof Element()  Polimorfismo: le librerie ritornano un'istanza della sottoclasse corretta! '''Validazione:''' factory.setValidating(true); per renderlo valido '''Browsing e stampa:''' getAttributes() --> restituisce gli attributi della mappa creata getNodeValue() --> nel caso in cui sia un attributo Element root = doc.getDocumentElement(); Dentro la stringa si accumulano i vari nomi dei testi che poi vengono visualizzati a schermo. ''' Modifica dell'albero:''' Modificate le linee 6-7: da:
->[-La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. L'uso di questa libreria ha alcuni vantaggi rispetto alle librerie classiche con cui Java viene fornito, la SAX e la DOM.-] a:
->[-La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. L'uso di questa libreria ha alcuni vantaggi rispetto alle librerie classiche con cui Java viene fornito, la SAX e la DOM. In questo articolo si una breve introduzione alla libreria e si mostreranno alcuni usi classici.-] Modificate le linee 6-7: da:
->La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. L'uso di questa libreria ha alcuni vantaggi rispetto alle librerie classiche con cui Java viene fornito, la SAX e la DOM. a:
->[-La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. L'uso di questa libreria ha alcuni vantaggi rispetto alle librerie classiche con cui Java viene fornito, la SAX e la DOM.-] Modificate le linee 2-3: da:
a:
'''Autore:''' [[profiles.Andrea| Andrea Rota]]\\ '''Hanno contribuito:''' ->'''Sommario''' ->La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. L'uso di questa libreria ha alcuni vantaggi rispetto alle librerie classiche con cui Java viene fornito, la SAX e la DOM. Modificate le linee 9-36: da:
a:
JDOM si propone come soluzione finale, andando ad interagire con SAX o DOM (o altre librerie) e fornendo una visione astratta molto vicina ai concetti Java, risultando semplice ed immediato nell'uso classico dell'XML. !!Creare da zero un file XML Come esempio utilizzeremo questo file XML: <?xml version="1.0" encoding="UTF-8"?> <Rubrica> <Nominativo> <Nome>Andrea</Nome> <Cognome>Rota</Cognome> <Telefono tipo="Casa">123456</Telefono> <Telefono tipo="Cellulare">123456789</Telefono> </Nominativo> </Rubrica> Che contiene sia "commenti", sia "elementi" con testo, sia "attributi", ovvero il 90% di quello utilizzato comunemente in XML. JDOM distingue fra fra oggetti di tipo: Element e = new Element("Nominativo").add(new Element("Nome").seText("Andrea")); Inoltre viene Modificate le linee 2-9: da:
La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [www.jdom.org]. a:
La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [[http://www.jdom.org]]. !!Cos' la libreria JDOM Usare XML direttamente leggendo e scrivendo sui file (e rispettando tutte le regole sintattiche) potrebbe essere un problema. Essendo un'esigenza diffusa fra chi programma, esistono dei componenti specifici, detti parser, che interagiscono con l'XML e compiono interrogazioni. Tuttavia il livello d'astrazione ancora troppo basso per la maggior parte degli sviluppatori e sono stati introdotti degli strumenti multilinguaggio, che sono delle librerie per l'uso dell'XML ad fornendo una visione dell'XML come albero (ad esempio le librerie DOM) o una visione come sequenza di eventi (come le librerie SAX). Queste librerie hanno due svantaggi: * Mantengono una visione indipendente dal linguaggio * Sono pensate per svolgere tutte le operazioni possibili, senza ottimizzare la sintassi per quelle diffuse. JDOM si propone come soluzione finale, andando ad interagire con SAX o DOM (o altre librerie) e fornendo una visione astratta molto vicina ai concetti Java, risultando semplice ed immediato nell'uso classico dell'XML. Aggiunte le linee 1-2:
!La libreria JDOM La libreria JDOM una libreria open source per l'utilizzo di XML in Java, scaricabile liberamente dal sito [www.jdom.org]. |