Esercizi
- Home
- Esercizi del capitolo 18 e dell'appendice L
Esercizi del capitolo 18 e dell'appendice L
Java e il mondo XML e JAXB
Qui troverete sia esercizi sul capitolo 18 che sull'appendice L. Questi ultimi hanno una numerazione
diversa che inizia con la lettera L e verranno aggiunti a breve.
Di seguito trovate gli esercizi del capitolo.
Per ogni esercizio, cliccando sulla traccia potete vedere la relativa soluzione.
Gli esercizi caratterizzati dall'icona sono
considerati i più complessi relativamente agli argomenti trattati.
Se preferite lavorare offline, è possibile scaricare tutti gli esercizi e le relative
soluzioni in formato PDF nella sezione download.
-
Esercizio 18.a) JAXP, Vero o Falso:
1. Per le specifiche DOM, ogni nodo è equivalente ad un altro e un commento viene visto come un oggetto di tipo
Node
.
2. Infatti l'interfacciaNode
implementaText
.
3. Per poter analizzare un documento nella sua interezza con DOM, bisogna utilizzare un metodo ricorsivo.
4. Con il seguente codice:Node n = node.getParentNode().getFirstChild();
si raggiunge il primo nodo "figlio" di
node
.
5. Con il seguente codice:Node n = node.getParentNode().getPreviousSibling();
si raggiunge il nodo "fratello" precedente di
node
.
6. Con il seguente codice:NodeList list = node.getChildNodes(); Node n = list.item(0);
si raggiunge il primo nodo "figlio" di
node
.
7. Con il seguente codice:Element element = doc.createElement("nuovo"); doc.appendChild(element); Text text = doc.createTextNode("prova testo"); doc.insertBefore(text, element);
viene creato un nodo chiamato nuovo, in cui viene aggiunto testo.
8. La rimozione di un nodo provoca la rimozione di tutti i suoi nodi "figli".
9. Per analizzare un documento tramite l'interfaccia SAX bisogna estendere la classeDefaultHandler
e effettuare override dei suoi metodi.
10. Per trasformare un file XML e serializzarlo in un altro file dopo una trasformazione mediante un file XSL, è possibile utilizzare il seguente codice:try { TransformerFactory factory = TransformerFactory.newInstance(); Source source = new StreamSource(new File("input.xml")); Result result = new StreamResult(new File("output.xml")); Templates template = factory.newTemplates( new StreamSource(new FileInputStream("transformer.xsl"))); Transformer transformer = template.newTransformer(); transformer.transform(source, result); } catch (Exception e) { e.printStackTrace(); }
Soluzione
1. Vero.
2. Falso, l'interfacciaText
implementaNode
.
3. Vero.
4. Falso, si raggiunge il primo nodo "fratello" dinode
.
5. Falso.
6. Vero.
7. Falso, il testo viene aggiunto prima del tag con il metodoinsertBefore
. Sarebbe invece opportuno utilizzare la seguente istruzione per aggiungere il testo all'interno del tag nuovo:element.appendChild(text);
8. Falso.
9. Vero.
10. Vero.