Lggere da XML a DataSet e scrivere da DataSet ad XML

domenica 12 giugno 2005 - 17.47

ame2171 Profilo | Newbie

Salve a tutti,
sono nuovo del gruppo e neofita di dotnet.
Tuttavia ho urgente bisogno di riuscire a caricare in un dataset
tutti i valori contenuti in un files XML e, successivamente
di ricrivere il contenuto aggiornato del dataset nel file XML.

Vi prego di aiutarmi ed eventualmente di condividermi blocchi
di codice già implementati.

Grazie

Cteniza Profilo | Guru

Il dataset ha due metodi ReadXml e WriteXml, visti i nomi così sospetti (che tra l'altro sarebbero comparsi solo con l'interrogare la classe dataset nell'help) se fossi in te indagherei a fondo.

ame2171 Profilo | Newbie

Scopiazzando dove capita ho trovato questo codice C#

void Page_Load() {
DataSet ds = new DataSet();
ds.ReadXml("percorso");
dg.DataSource = ds.Tables["tag1"].DefaultView;
dg.DataBind();

oppure:

Dim Objds As New DataSet
Dim fsReadXml As New System.IO.FileStream("percorso­",
System.IO.FileMode.Open)
Objds.ReadXml(fsReadXml)
grid.DataSource = Objds
grid.DataBind()


che funzionano.
Il problema è che in tutti e due i casi per un file xml con nodi
interni tipo:


<?xml version="1.0" encoding="utf-8" ?>
<tag1 attr1="aaa" attr2="bbb">
<tag2 attr3="ccc"/>
<tag2 attr4="ddd" attr5="eee">
<tag3>fff</tag3>
</tag2>
</tag1>
<tag1 attr1="aaa" attr2="bbb">
<tag2 attr3="ccc"/>
<tag2 attr4="ddd" attr5="eee">
<tag3>fff</tag3>
</tag2>
</tag1>


io riesco a vedere nel datagrid solo i valori relativi agli attributi
del tag1
ma non quelli interni. Come mi devo comportare? Non so da dove
cominciare.


Vorrei visualizzare nel datagrid tutti i valori sia dei nodi esterni
che di quelli interni.


N.B.: mi conviene utilizzare gli stream o meno?


GRAZIE

Cteniza Profilo | Guru

La tua domanda iniziale era riguardo un dataset e un file xml da caricare.
La struttura che hai fornito non mi sembra organizzata secondo lo schema di un dataset / record.
A titolo esemplificativo:
<?xml version="1.0" standalone="yes"?>
<Dati>
<Tabella>
<Campo1>A</Campo1>
<Campo2>B</Campo2>
</Tabella>
</Dati>

Dati è il nome "interno" del dataset
Tabella è il nome della tabella
Campo1 e Campo2 sono i campi della table
A e B sono i corrispondenti valori

ame2171 Profilo | Newbie

Ti ringrazio molto per aver capito il mio vero problema...la struttura del file .xml
Il fatto è che il file che mi è stato passato e' del tipo segnalato.
Ora, lo posso convertire in un file xml con la struttura da te fornita...
però mi piacerebbe evitare ciò e riuscire a caricare tutti i dati in un unico datagrid.
Non so se si può fare. ma se ci riuscissi...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5