Answered document xml e ciclo sui nodi

  • venerdì 6 aprile 2012 08:10
     
      Contiene codice

    ciao a tutti

    sto guardando un po come lavorare con i file xml e qualcosa non mi torna: leggo un file utilizzando un xmldocument, quindi il contenuto è inserito in memoria, ed infatti se richiamo un nodo specificando l'indice riesco a leggere l'innertext , che è cio che mi interessa realmente. Quello che non riesco a fare è leggere l'innertext utilizzando il nome dell'elemento e ciò mi obbliga a fare un ciclo su tutti i sottonodi per controllare se il nome dell'elemento è quello che sto cercando. Visto che ho circa 700 nodi figlio il ciclo viene eseguito 700 x nodi nel file, il che mi sembra uno spreco di "energie".Facendo un esempio con un po di codice:

    doc.Load(NomeFile);
    //metto i nodi in un oggetto nodelist
    nodeList = doc.SelectNodes("//giorno/impianto");
    //ciclo sul nodelist e leggo tutti nodi
    foreach (XmlNode nd in nodeList){
    // se è il nodo con il codice impianto giusto...
    if (nd.Attributes[0].Value == cod_impianto)
    {
     //... ed ha sottonodi...
       if (nd.HasChildNodes)
    
    
    // qi sono costretto a ciclare su tutti i nodi figlio per 
    //trovare il nodechild.name giusto 
    foreach (XmlNode nodechild in nd.ChildNodes)
    {
    if (nodechild.Name == ("versione_software")                                                                          
    string versione = nodechild["versione_software"].InnerText;
      }
    }
      }

    Quindi vengo alla domanda:

    c'è un modo per leggere la proprietà innertext richiamando il nodo figlio con il nome dell'elemento?

    grazie per le risposte

    nervo


    • Modificato nervo venerdì 6 aprile 2012 08:11
    •  

Tutte le risposte