XML e selezione di nodi

lunedì 18 settembre 2006 - 11.24

giulyxiano Profilo | Junior Member


Ho un file XML il quale è composto da questi elementi

- <Iscrizione CodAppello="8187" ID="1">
<Data>27/11/2004 13:08</Data>
<Voto>28qqqqq</Voto>
<Superamento>1</Superamento>
- <Studente Matricola="95045" Pincode="101780" Carriera="1" LuogoNascita="UMBERTIDE" DataDiNascita="15 agosto 1985">
<Nome>FRANCESCO</Nome>
<Cognome>MACRI'</Cognome>
</Studente>
</Iscrizione>
.
.
.

Devo andare a fare una selezione di questi nodi, devo prendere quelli che hanno il campo Superamanto=1 e quelli il
cui voto è in un insieme [1 2 3 4 ........30]



per il superamento non c'è problema ho fatto così, ma per il voto come posso fare?
Dim ListaSuperato As XmlNodeList = xmlXLS.SelectNodes("//Iscrizione[Superamento=1]")


Greco Giuliano

luigi.tascapani Profilo | Newbie

Ciao, secondo me ti conviene crare una classe che rispecchi la struttura del tuo XML e poi leggere il file XML con un XmlReader.
Ogni campo del file xml dovrà corrispondere ad un attributo della classe.
Ho fatto una cosa simile, la mia classe si chiamava Campo... la classe deve essere definita con dei particolari tag xml:

<XmlRoot(ElementName:="campo")> Public Class Campo
<XmlElement(ElementName:="nome")> Public Nome As String
<XmlElement(ElementName:="tipo")> Public Tipo As Integer
<XmlElement(ElementName:="ordine")> Public Ordine As Integer
<XmlElement(ElementName:="dimensione")> Public Dimensione As Integer
<XmlElement(ElementName:="obbligatorio")> Public Obbligatorio As Boolean
<XmlElement(ElementName:="subTipo")> Public subTipo As String

per leggere il file xml invece:

Dim settings As New XmlReaderSettings()
Dim factory As New XmlSerializerFactory()
dim fileXml as String = "TUOFILE.XML"
Using reader As XmlReader = XmlReader.Create(fileXml, settings)
Try
While (reader.Read())
If reader.NodeType = XmlNodeType.Element And reader.LocalName.Equals("campo") Then
Dim xs As XmlSerializer = factory.CreateSerializer(GetType(Campo))
Dim campo As Campo = CType(xs.Deserialize(reader.ReadSubtree), Campo)

End if
End While
Catch ex As Exception
End Try
End Using

In .net la serializzazione/deserializzazione XML è veramente semplice, prova a dare un'occhiata alla classe XmlReader.
Ciao
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5