Leggere un file XML con DOM

giovedì 07 giugno 2007 - 09.41

bluelions Profilo | Senior Member

Avrei bisogno di leggere un file xml, o meglio crearmi una classe che tramite un metodo mi restituisca una strina.
Però vorrei capire una cosa su come gestire la lettura del file attraverso la root e i nodi.

Ho un file del genere:

<body>
<prova>
<1></1>
<2></2>
<3></3>
</prova>

<prova2>
<1></1>
<2></2>
<3></3>
</prova2>

</body>

Ora praticamente dovrei creare un metodo che gli passo il nodo da leggere, ad esempio prova e poi leggere il tag che desidero , esempio 1,2 e cosi via.....
E' possibile fare una cosa del genere? Mi conviene utilizzare xml Dom o xml TextReader?

Wamba Profilo | Expert

>Avrei bisogno di leggere un file xml, o meglio crearmi una classe
>che tramite un metodo mi restituisca una strina.
>Però vorrei capire una cosa su come gestire la lettura del file
>attraverso la root e i nodi.
>
>Ho un file del genere:
>
><body>
> <prova>
> <1></1>
> <2></2>
> <3></3>
> </prova>
>
> <prova2>
> <1></1>
> <2></2>
> <3></3>
> </prova2>
>
></body>
>
>Ora praticamente dovrei creare un metodo che gli passo il nodo
>da leggere, ad esempio prova e poi leggere il tag che desidero
>, esempio 1,2 e cosi via.....
>E' possibile fare una cosa del genere? Mi conviene utilizzare
>xml Dom o xml TextReader?

Io andrei con xmlDom e una ricerca xpath
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

bluelions Profilo | Senior Member

ok, sto utilizzando il metodo SelectSingleNode(xpath)
Secondo te va bene?

Wamba Profilo | Expert

Da quello che mi hai detto, mi sembra il metodo migliore a patto che tu sia sicuro che ci sia un solo elemento di quel tipo o che ti interessi leggere solo il primo
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

bluelions Profilo | Senior Member

no non ho un solo elemento di quel tipo...ho ad esempio in questo modo:

<nomecitta>
<storia></storia>
<citta></territorio>

</nomecitta>

<nomecitta_2>
<storia></storia>
<citta></territorio>

</nomecitta_2>

Però io gli passo il nodo esempio nomecittà e il figlio.
Se non va bene quale sarebbe la soluzione ideale?
Grazie

Wamba Profilo | Expert

Quest'xml è sbagliato,
><nomecitta>
> <storia></storia>
> <citta></territorio>
>
></nomecitta>
>
><nomecitta_2>
> <storia></storia>
> <citta></territorio>
>
></nomecitta_2>

dovresti usare una cosa tipo
<nomecitta Id = "1">
<storia></storia>
<citta></territorio>

</nomecitta>

<nomecitta Id = "2">
<storia></storia>
<citta></territorio>

</nomecitta>


-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

bluelions Profilo | Senior Member

si pero nome citta non è uguale
esempio napoli e l'altro è roma.
Poi alla mia funzione gli passo come parametro il nodo e da li mi prendo i figli. Quindi mi stai dicendo che cosi va bene.

Wamba Profilo | Expert

scusa non avevo capito un'h ,
si allora va bene ;)
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

bluelions Profilo | Senior Member

quindi mi confermi che va bene cosi? o devo fare con id come mi hai specificato?

Wamba Profilo | Expert

io avrei usato un tag fatto in queso modo

<citta name="Livorno">
...
</citta>

in modo da avere i tag uniformi, ma anche il tuo modo funziona.
La garanzia di univocità te la da la tua businnes logic, che immagino non permetterà di inserire due tag <Livorno>.
Quindi direi bene così!
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

bluelions Profilo | Senior Member

ok, ti ringrazio...molto gentile
Ciao

Wamba Profilo | Expert

figurati è un piacere.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
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