PDA

View Full Version : [Java-XML] Costruzione file XML da stringa


Abdujaparov
07-03-2008, 11:27
Ciao a tutti, ho un piccolo quesito da sottoporvi.
Dovrei scrivere un metodo java che prendento in ingresso una stringa che contiene al suo interno un file xml con tag vuoti costruisca un documento XML che devo riempire e poi successivamente devo tornare un oggetto del tipo:
org.w3c.dom.Document

Le api standard di java 6 mi forniscono già qualcosa di simile?
Penso si possa fare tutto con DOM no?
Soprattutto mi interessa il costruttore per avere un file xml a partire da una stringa e successivamente il modo per trasformare il documento (dopo essere stato opportunamente riempito) in oggetto org.w3c.dom.Document.

qualcuno sa dove posso trovare qualche esempio o mi può consigliare qualcosa?
Grazie a tutti.
Ciao ciao.

andbin
07-03-2008, 11:45
Dovrei scrivere un metodo java che prendento in ingresso una stringa che contiene al suo interno un file xml con tag vuoti costruisca un documento XML che devo riempire e poi successivamente devo tornare un oggetto del tipo:
org.w3c.dom.DocumentPuoi usare JAXP (integrato in Java SE dalla 1.4).

Usa le classi javax.xml.parsers.DocumentBuilderFactory e javax.xml.parsers.DocumentBuilder.

Ottieni prima un DocumentBuilderFactory e poi da questo ottieni un DocumentBuilder che ha dei metodi parse() che ritorna un Document. Ti conviene usare il parse() che riceve un InputSource.

Se parti con una stringa, allora costruisci un java.io.StringReader, che usi per costruire un InputSource, che passi al parse().

A parole può sembrare complicato ma a livello pratico è semplice.

Abdujaparov
07-03-2008, 17:17
Ciao, grazie mille, sai dove posso trovare del codice d'esempio?
Grazie ancora, ciao ciao.

andbin
07-03-2008, 17:37
Ciao, grazie mille, sai dove posso trovare del codice d'esempio?Ad esempio questo che ho appena scritto:

import java.io.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;

public class XMLString
{
public static void main (String[] args)
{
try
{
String xmlStr = "<?xml version='1.0'?><hello></hello>";

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
DocumentBuilder db = dbf.newDocumentBuilder ();

StringReader sr = new StringReader (xmlStr);
InputSource is = new InputSource (sr);

Document document = db.parse (is);
}
catch (Exception e)
{
System.out.println (e);
}
}
}