Ciao a tutti,
ho cercato tanto in rete ma non ho trovato molto di quello che devo fare io.
Vi spiego il problema: ho un file xml fatto in questo modo:
i sotto nodi possono essere di più o di meno ma mai si va oltre il secondo livello.codice:<nodeID="1"query="query 1"dbQuery="aaa"> <nodeID="2"query="query 2"dbQuery="bbb"></node> <nodeID="3"query="query 3"dbQuery="ccc"></node> <nodeID="4"query="query 4"dbQuery="ddd"></node> <nodeID="5"query="query 5"dbQuery="eee"> <nodeID="6"query="query 6"dbQuery="fff"></node> </node> </node>
Questo file xml lo leggo regolarmente con la funzione:
Però quando provo a modificare il file xml aggiuggendo TextB, TextC, TextF:codice:privatevoidProcessaSottoNodi(XmlNode node){ if(node.HasChildNodes) { foreach(XmlNode cNode in node.ChildNodes) { Console.WriteLine("{0}", cNode.Name); foreach(XmlAttribute attr in cNode.Attributes) Console.WriteLine("{0}", attr.Name+" = "+ attr.InnerText); Console.WriteLine("-------------------------------"); ProcessaSottoNodi(cNode); } } }
La funzione mentre processa i nodi va in errore nel secondo foreach, perché ??codice:<nodeID="1"query="query 1"dbQuery="aaa"> <nodeID="2"query="query 2"dbQuery="bbb">TextB</node> <nodeID="3"query="query 3"dbQuery="ccc">TextC</node> <nodeID="4"query="query 4"dbQuery="ddd">TextD</node> <nodeID="5"query="query 5"dbQuery="eee"> <nodeID="6"query="query 6"dbQuery="fff">TextF</node> </node> </node>
aggiungendo tra i due foreach il codice:
Mi compare "node = TextBTextCTextDTextF" e poi un "#text" e si ferma tutto.codice:Console.WriteLine("{0}", cNode.Name + " = " + cNode.InnerText);
ho provato a cerca nella grande rete ma non sono riuscito a trovare risposta.
o trovo delle semplici funzioni per poter trovare l'innertext o trovo metodi per leggere gli attributi degli elementi.
Grazie mille

Rispondi quotando
