Per recuperare dei valore allinterno di un file
XML ci sono diversi sistemi, uno dei più veloci è quello di utilizzare le query
XPath, che vengono utilizzate allinterno del
DOM di
XML.
Come esempio prendiamo questo semplice file XML che si chiama Elenco.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Elencofile>
<NomeFile>Organigramma.xml</NomeFile>
<NomeFile>Configurazione.xml</NomeFile>
<StartFile>notepad.exe</StartFile>
</Elencofile>
Per prima cosa è necessario importare il namespace relativo all'XML:
Imports System.XMLPer esempio vogliamo recuperare il valore del nodo
Startfile, la query Xpath sarà:
"//StartFile"Attraverso la classe
XmlDocument ci bastano poche righe:
Dim doc As New XmlDocument()
doc.Load(Elenco.xml)
Dim node As XmlNode
node = doc.SelectSingleNode("//StartFile")
Il metodo
SelectSingleNode recupera il primo nodo che corrisponde alla query facendo una scansione del documento dallalto verso il basso.
Se invece dobbiamo recuperare una lista di valori il metodo da usare è
SelectNodes Nel nostro esempio:
Dim Doc As New XmlDocument()
Doc.Load(Elenco.xml)
Dim nodelist As XmlNodeList
nodelist = Doc.SelectNodes("//NomeFile")
XmlNodeList è un array di nodi quindi poi basterà scorrerlo per poter accedere ai singoli nodi.
Conclusione
Le query
XPath non sono complicate dal punto di vista sintattico basta far riferimento alla guida del SDK, soprattutto la cosa importante e che se cambia la struttura del documeto XML non dobbiamo apportare nessuna modifica al nostro codice (l'importante è che il nome del nodo resti uguale).