Ciao, se tu hai un file tipo questo:
File: test.xml
<?xml version="1.0" encoding="utf-8"?>
<root>
<record>
<id>1</id>
<nome> nome1 </nome>
<cognome> cognome1</cognome>
<piva> piva1 </piva>
</record>
<record>
<id>2</id>
<nome>nome2 </nome>
<cognome>cognome2 </cognome>
</record>
<record>
<id>3</id>
<nome>nome3 </nome>
<piva>piva3 </piva>
</record>
</root>
Ho creato una funzione che legge i nodi e questo è il risultato:
Nodo(0) Nome = record
->id = 1
->nome = nome1
->cognome = cognome1
->piva = piva1
Nodo(1) Nome = record
->id = 2
->nome = nome2
->cognome = cognome2
Nodo(2) Nome = record
->id = 3
->nome = nome3
->piva = piva3
Esempio di utilizzo:
'litXMLFile è un tag
'<asp:Literal ID="litXMLFile" runat="server">
'</asp:Literal>
'dentro il form
litXMLFile.Text = ReadXML("//root/record", "test.xml")
Funzione
Ti potrai creare un altra funzione SalvaRecord
per salvarti ogni singolo valore
Es:
SalvaRecord(numElemento,NomeElemento,ValoreElemento)
Imports System.Xml
Public Function ReadXML(ByVal XPathQuery As String, ByVal FileName As String) As String
'Esempio di utilizzo (litXMLFile è <asp:Literal ID="litXMLFile" runat="server"></asp:Literal> dentro il form)
'litXMLFile.Text = ReadXML("//root/record", "test.xml")
Dim retValue As String = ""
Dim path As String = HttpContext.Current.Server.MapPath(FileName)
Dim Doc As New XmlDocument()
Doc.Load(path)
Dim node As XmlNodeList = Doc.SelectNodes(XPathQuery)
For numElemento As Integer = 0 To node.Count - 1
retValue &= "Nodo(" & numElemento & ") Nome = " & node(numElemento).Name & "<br/>" & vbCrLf
For j As Integer = 0 To node(numElemento).ChildNodes.Count - 1
Dim NomeElemento As String = node(numElemento).ChildNodes(j).Name
Dim ValoreElemento As String = node(numElemento).ChildNodes(j).InnerText
retValue &= "->" & NomeElemento & " = " & ValoreElemento & "<br/>" & vbCrLf
'Qui ti crei la funzione per salvare i valori nel db..
'Es.: SalvaRecord(numElemento,NomeElemento,ValoreElemento)
Next
Next
Return retValue
End Function