In questo esempio, vediamo come rilevare il valore dei sotto nodi, di un nodo, in cui l'attributo ha il valore "a".
Tramite linq to xml, e l'esecuzione di due query, possiamo ottenere i valori di determinati nodi, appartenenti ad altri nodi. Dopo aver rilevato il nodo denominato "Elemento", con l'attributo "nom" imposto a A, rilevo tutti i suoi sottonodi.
A questo punto ordino in maniera crescente i vari valori della query eseguita precedentemente e carico la dropdownlist
Qui di seguito si riporta il codice per il linguaggio VB.Net e C# ed il file XML
VB.Net
'rilevo l'elemento che ha il valore a dell'attributo nome
Dim percorso As String = HttpContext.Current.Server.MapPath("~/XMLFile1.xml")
Dim query = From el In XElement.Load(percorso).Elements("Elemento")
Where el.Attribute("nome").Value = "a"
Select el
'rilevo i valori per quell'elemento
Dim query2 = From ris In query.Descendants("Valore")
Select ris.Value
DropDownList1.DataSource = query2
DropDownList1.DataBind()
C#
//rilevo l'elemento che ha il valore a dell'attributo nome
string percorso = HttpContext.Current.Server.MapPath("~/XMLFile1.xml");
var query = from el in XElement.Load(@percorso).Elements("Elemento")
where el.Attribute("nome").Value == "a"
select el;
//rilevo i valori per quell'elemento
var query2 = from ris in query.Descendants("Valore")
select ris.Value.ToString();
DropDownList1.DataSource = query2;
DropDownList1.DataBind();
File XML
<?
xml version="1.0" encoding="utf-8" ?><
Dati><
Elemento nome="a"><
Valore>testo a</Valore><
Valore>testo2 a</Valore><
Valore>testo3 a</Valore></
Elemento><
Elemento nome="b"><
Valore>testo b</Valore><
Valore>testo2 b</Valore><
Valore>testoe b</Valore></
Elemento><
Elemento nome="c"><
Valore>testo c</Valore><
Valore>testo2 c</Valore></
Elemento></
Dati>
Nessun commento:
Posta un commento