Newsgroup: it.comp.www.asp
Titolo: .NET e xml

Forse sono OT, non so...ho bisogno di un aiuto per 
ASP.NET
Ho bisogno di sapere se è possibile fare in modo automatico un lavoro di
questo tipo:
Ho bisogno di creare un file XML da un dataset estratto da un database
relazionale. La tabella del database descrive un albero.
|  id   |   id_padre  |  nome_nodo  |
----------------------------------
|        |                  |                      |
es.
   1           null              pippo
   2            1                pino
   3            1                peppino
   4            3                gigi
pino e peppino figli di pippo e gigi figlio di peppino. :-)
devo ricavarne un file xml rappresentante questa struttura.
Spero di essere stato abbastanza chiaro.
Grazie
Fabio.

 relazionale. La tabella del database descrive un albero.
Se non sbaglio c'è un metodo nella classe del Dataset che dovrebbe fare al
caso
tuo. Di seguito ti scrivo un esempio che crea sia l'XML che lo Schema.
Per chiarimenti ti consiglio la documentazione.
strSQL = "Select * FROM Tabella"
SqlConnection objConn = new
SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlDataAdapter da = new SqlDataAdapter(strSQL, objConn);
DataSet ds = new DataSet();
da.Fill(ds, "MiaTabella");
FileStream oFsXmlData = new
FileStream(Server.MapPath("myXMLData.xml"),FileMode.Create,FileAccess.ReadWr
ite);
FileStream oFsXsdData = new
FileStream(Server.MapPath("myXMLData.xsd"),FileMode.Create,FileAccess.ReadWr
ite);
ds.WriteXml(oFsXmlData);
oFsXmlData.Close();
ds.WriteXmlSchema(oFsXsdData);
oFsXsdData.Close();

 oFsXsdData.Close();
Grazie per l'aiuto,
ma come fa a ricostruire l'albero se non tiene conto della relazione che c'è
tra
id e id_padre? forse bisogna impostare la relazione.
Grazie ancora, provo a cercarmi la documentazione.
Fabio.

Ho fatto una cosa di questo tipo, ho però il problema che essendo la
relazione una e nella stessa tabella mi crea un albero con un solo  livello
di annidamento.
Va a creare i gili di ogni padre ma non crea i figli dei figli.
Probabilmente vuole una tabella e realzione per ogni livello.
Grazie
Ciao
Sub Page_Load(sender as Object, e as EventArgs)
      If Not Page.IsPostBack then
      'Stringa di connessione
      Dim strConn as string ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
& server.mappath("books.mdb")
      'Istanza oggetto connessione
      Dim objConn as New OleDbConnection(strConn)
      'Apertura connessione
      objConn.Open()
      Dim strSQL as String = "SELECT id FROM Foglie"
      Dim objDataAdapter As New OleDbDataAdapter(strSQL, objConn)
      Dim objDataSet As New DataSet()
      objDataAdapter.Fill(objDataSet, "Foglie")
      objDataAdapter.SelectCommand.CommandText = "SELECT id_padre,date FROM
Foglie"
      objDataAdapter.Fill(objDataSet, "Foglie1")
      Dim padre, figlio As DataColumn
      figlio = objDataSet.Tables("Foglie1").Columns("id_padre")
      padre = objDataSet.Tables("Foglie").Columns("id")
      Dim Relazione As DataRelation
      Relazione = new DataRelation("Rel1", padre, figlio)
      Relazione.Nested = True
      objDataSet.Relations.Add(Relazione)
      objDataSet.WriteXML(Request.MapPath("strutturatree.xml"))
      end if
   End Sub

In poche parole la domanada č questa..
Sapete se č possibile impostare una relazione in un dataset con
"DataRelation"
tra due campi de una stessa tabella, che permetta di ricostruire
un albero in xml partendo dalla tabella del database.
I due campi della tabella che permettono la riscostruzione
dell'albero sono ID ed ID_PADRE
e scrivere successivamente il file xml rappresentante l'albero
ds.WriteXml("nestedrel.xml")
Grazie
Ciao!