Xl: aggiornare il valore dell'attributo di un nodo

lunedì 11 settembre 2006 - 10.35

acsp Profilo | Newbie

ciao a tutti...
ho un file xml di questo tipo:

<?xml version="1.0"?>
<Root>
<Intestazione>
<CodAppello Value="29" />
<Data Value="19/09/2006" />
<Sede Value="camerino" />
</Intestazione>
<Corpo>
<RigheTotali Value="1" />
<Riga1 Value="ciao" />
</Corpo>
</Root>


e devo aggiornare il nodo RigheTotali. ho scritto la seguente funzione:

codice:

Public Function updateNodo(ByVal nodo As String, ByVal attr As String, ByVal newval As String) As String
...
Dim modified As Boolean = False
doc = New XmlDocument
doc.Load(path)
reader = New System.Xml.XmlTextReader(path)
Do While (reader.Read)
Select Case reader.NodeType
Case XmlNodeType.Element
If String.Compare(reader.Name, nodo) = 0 Then
node = doc.ReadNode(reader)
node.Attributes(attr).Value = newval
modified = True
End If
End Select
Loop
...


richiamata nel seguente modo:

codice:
...
nr += 1
str = file.updateNodo("RigheTotali", "Value", nr)
...


il problema è ke non ho nessun errore ma il valore di RigheTotali rimane semper ad 1.
perchè? è errata la funzione di update, vero? se si, dove sbaglio?

grazie a tutti

acsp Profilo | Newbie

>XmlTextReader serve solo per leggere, se devi leggere e scrivere
>utilizza il DOM

grazie x la risp... xmltextreader infatti volevo utilizzarlo solo x trovare il nodo...
ora ho provato a farlo così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

richiamando la funzione nel seguente modo:

str = file.updateNodo("Intestazione", "RigheTotali", "Value", 45)

non ho nessun tipo di errore ma il valore del nodo non cambia:

<RigheTotali Value="1" />

x'? grazie ancora

acsp Profilo | Newbie

ciao!!!
come al solito ho lasciato qlc... dimenticavo di salvare!!!
cmq scrivo la funzione completa, servisse a qlc...

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


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