10 messaggi dal 21 gennaio 2013
Non riesco a leggere il valore di un nodo xml.

Ho impostato un metodo che deve restituire una stringa, che appunto dovrebbe contenere il valore del nodo di un file xml.

Dim Trad As String
        Dim XMLDoc As New XmlDocument
        Dim node As XmlNode
        'Dim risultato As String
        Dim percorsoFile As String = HttpContext.Current.Server.MapPath("diz_" & Lingua & ".xml")
        XMLDoc.Load(percorsoFile)
        node = XMLDoc.SelectSingleNode("//translation [@name=""" & Termine & """]")

Trad = node.Value


Quello che pensavo di fare era selezionare il nodo che volevo con questa istruzione:
node = XMLDoc.SelectSingleNode("//translation [@name=""" & Termine & """]")


che penso vada bene...
poi salvo il valore in una variabile con node.Value ma non funziona

mi dice: Impossibile convertire il valore di tipo 'Traduci' in 'String'.

Il metodo viene richiamato al click su un imagebutton in questo modo:

Protected Sub ImageButton1_Click(sender As Object, e As ImageClickEventArgs) Handles ImageButton1.Click
        Dim LNG As String = Session("lingua")
        Dim Traduzione As Traduci = New Traduci("home1", "EN")
        Literal1.Text = Traduzione
    End Sub
un esempio di XML e il codice della funzione Traduci
grazie

Ormai programmano tutti... ma la professionalità appartiene a pochi
10 messaggi dal 21 gennaio 2013
Questo il codice della funzione traduci:
Public Function Traduci(Termine As String, Lingua As String) As String
        Dim Trad As String
        Dim XMLDoc As New XmlDocument
        Dim node As XmlNode
        Dim percorsoFile As String = HttpContext.Current.Server.MapPath("diz_" & Lingua & ".xml")
        XMLDoc.Load(percorsoFile)
        node = XMLDoc.SelectSingleNode("//translation [@name=""" & Termine & """]")
        Trad = node.Value
        Return Trad
    End Function


Il file xml viene scelto correttamente in base alla lingua selezionata. Sono tutti del tipo:

<?xml version="1.0" encoding="iso-8859-1"?>
<lingua>
  <lang name="english">
    <translation name="home01">Welcome in my site</translation>
  </lang>
</lingua>


Per il momento visto che sto ancora cercando di far funzionare il tutto!

Scusa se ho risposto con un po' di ritardo!
Puoi riportare anche l'errore preciso?
grazie.

Ormai programmano tutti... ma la professionalità appartiene a pochi
10 messaggi dal 21 gennaio 2013
Ciao, l'errore preciso nel debug è questo:

Errore  1  Impossibile convertire il valore di tipo 'Traduci' in 'String'.


La riga segnalata è questa:

Dim Traduzione As String = New Traduci("home1", "EN")


Grazie a te per l'interesse!
10 messaggi dal 21 gennaio 2013
Non so se ho fatto qualche stupido errore, non sono ancora molto pratico con la programmazione ad oggetti e con il framework...qualunque indicazione è gradita!
Se lavori con xml consiglio Xsd2Code @ http://xsd2code.codeplex.com/

Fabrizio Canevali
10 messaggi dal 21 gennaio 2013
Grazie mi informo anche di Xsd2Code, comunque penso che il framework metta a disposizione i metodi che mi possono servire, alla fine devo solo leggere il valore di un nodo specifico in un semplicissimo file xml. Quello che più mi interessava poi come esercizio era creare la classe. Non so se lo sbaglio è nella definizione della classe e del metodo o se sbaglio qui:

Trad = node.Value


Ogni altro suggerimento è gradito! Grazie!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.