PDA

View Full Version : costruire un dom in java..


The Incredible
18-12-2002, 16:19
mi potete dare una mano per costruire un dom in java?
avete qualche link da consigliarmi?

vorrei metterci questo nel dom:
<?xml version="1.0" encoding="UTF-8"?>
<Componente>
<Nome_Ragazzoto>Danilo</Nome_Ragazzoto>
<Cognome_R>Favaretto</Cognome_R>
<altezza>193</altezza>
</Componente>

per ora sono riuscito a creare il dom partendo dal xml.. ma vorrei farlo creando io nodo per nodo..
Grazie

kingv
19-12-2002, 08:16
javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Document document = db.newDocument();




e poi aggiungi i nodi :o

The Incredible
19-12-2002, 08:20
Originally posted by "kingv"


javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Document document = db.newDocument();




e poi aggiungi i nodi :o

grazie fino a qui ci ero già riuscito.. il problema per me era proprio aggiungere i nodi... :(

Tassadar
19-12-2002, 09:44
Originally posted by "The Incredible"


javax.xml.parsers.DocumentBuilder db = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Document document = db.newDocument();




e poi aggiungi i nodi :o

grazie fino a qui ci ero già riuscito.. il problema per me era proprio aggiungere i nodi... :(

e che tipo di problema hai ad aggiungere i nodi?

The Incredible
19-12-2002, 09:54
vorrei aggiungere tag per tag..
ad esempio...
volglio mettere la radice come Componente
come faccio?
Node rootNode=??
e poi dopo inserire tag per tag da riga di comando..
Node tag1=..??

non so come fare?potete darmi uno spunto?
Sono una settimana che cerco di capire qualcosa...

The Incredible
19-12-2002, 09:55
per creare un dom da un xml non ho avuto problemi..
e il dom sono riuscito pure a scriverlo in un file xml..
il problema è appunto creare tag per tag a mano... non riesco.. a capire il meccanismo.. :(

Tassadar
19-12-2002, 10:35
Originally posted by "The Incredible"

vorrei aggiungere tag per tag..
ad esempio...
volglio mettere la radice come Componente
come faccio?
Node rootNode=??
e poi dopo inserire tag per tag da riga di comando..
Node tag1=..??

non so come fare?potete darmi uno spunto?
Sono una settimana che cerco di capire qualcosa...

allora:
il root node è un nodo come tutti gli altri, quindi lo crei con il metodo createElement dell'oggetto Document; per settarlo come nodo root basta che chiami il metodo appendChild sempre del tuo oggetto Document.

Per appendere gli altri nodi ti basta chiamare sempre il metodo createElement dell'oggeto Document, e chiamare l'appendChild del nodo al quale li vuoi appendere.
Per esempio se devi appenderli al nodo root:
OggettoDocument.getDocumentElement().appendChild(mioNodo);

The Incredible
19-12-2002, 10:50
ringrazio Tassadar per l' aiuto..

DocumentBuilder db =DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = db.newDocument();
Element root=(Element)doc.createElement("root");
doc.appendChild(root);
Element d=(Element)doc.createElement("tag");
doc.getDocumentElement().appendChild(d);

//classe che scrive in un file xml...
DOMUtil.writeXmlToFile("stagista.xml",doc);


questo codice in teoria mi dovrebbe dare:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<tag>
</tag>
</root>

invece il risultato del file xml è..
<?xml version="1.0" encoding="UTF-8"?>
<root><tag/></root>

praticamente non mi chiude i tag dentro il root.. non riesco a capirne il perchè..
ho provato a mettere + tag ma non vengono chiusi... come mai?[/code]

Tassadar
19-12-2002, 11:27
Originally posted by "The Incredible"

ringrazio Tassadar per l' aiuto..

DocumentBuilder db =DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = db.newDocument();
Element root=(Element)doc.createElement("root");
doc.appendChild(root);
Element d=(Element)doc.createElement("tag");
doc.getDocumentElement().appendChild(d);

//classe che scrive in un file xml...
DOMUtil.writeXmlToFile("stagista.xml",doc);


questo codice in teoria mi dovrebbe dare:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<tag>
</tag>
</root>

invece il risultato del file xml è..
<?xml version="1.0" encoding="UTF-8"?>
<root><tag/></root>

praticamente non mi chiude i tag dentro il root.. non riesco a capirne il perchè..
ho provato a mettere + tag ma non vengono chiusi... come mai?[/code]

guarda che <tag></tag> = <tag/>

mettere la / alla fine del nome del tag è una versione "spiccia" per chiudere un tag che non ha figli :)

The Incredible
19-12-2002, 11:30
Originally posted by "Tassadar"


guarda che <tag></tag> = <tag/>

mettere la / alla fine del nome del tag è una versione "spiccia" per chiudere un tag che non ha figli :)

ti ringrazio.. ora sono riuscito..
se non metto niente. mi mette solo il tag di chiusara mentre se metto un valore mi metto anche quello di inizio...

Sono felice sono riuscito..
se a quacuno serve posto l' esempio..
ciao e Grazie