• User Newbie

    [asp.net vb] Leggere file xml

    Buonasera, è da qualche giorno che mi sono imbattuto in un file xml, di questo tipo:

    <dataset>
    -<nodo1>
    -<nodo1A>
    <datinodo1A>...</datinodo1A>
    <datinodo1A>...</datinodo1A>
    </nodo1A>
    -<nodo1B>
    <datinodo1A>...</datinodo1A>
    <datinodo1A>...</datinodo1A>
    </nodo1B>
    </nodo1>
    -<nodo2>
    -<nodo2A>
    <datinodo2A>...</datinodo2A>
    <datinodo2A>...</datinodo2A>
    </nodo2A>
    -<nodo2B>
    <datinodo2A>...</datinodo2A>
    <datinodo2A>...</datinodo2A>
    </nodo2B>
    </nodo2>
    </dataset>

    Per leggere l'intero file xml ho usato queste istruzioni:

    Dim path As String = "Directory File xml"
    'istanzio il documento
    Dim Doc As New XmlDocument()
    'lo carico in memoria
    Doc.Load(path)
    'recupero il nodo root
    Dim element As XmlElement = Doc.DocumentElement
    'recupero il valore all'interno del primo figlio dell'elemento root
    Dim node As XmlNode
    For Each node In element.ChildNodes
    Response.Write(node.InnerText)
    Next

    Queste istruzioni mi permettono di leggere tutti i nodi dell'intero xml e di stamparle a video, ma se volessi recuperare solo alcuni valori tralasciandone altri quale sarebbe l'istruzione giusta. Io ho provato anche utilizando Xmlreader, ma posso fare un solo confronto e quindi posso prelevare un solo dato.


  • Super User

    Fare semplicemente il for e controllare finchè non si arriva a quello giusto?
    Potresti anche leggerlo in un dataset, tipizzato, quindi specificato prima, e poi usare la funzione select.


  • User Newbie

    Il problema non è leggere i nodi, ma i datinodi, con quel for che ho postato leggo tutti i datinodo di ogno nodo, invece io vorrei leggere tutti i nodi, ma solo alcuni datinodo.


  • Super User

    Beh datinodi sono figli di nodo, quindi li trovi dentro childnotes,

    For Each node In element.ChildNodes
    Response.Write(node.InnerText)
    For Each inner_node In node.ChildNodes
    Response.Write(inner_node.InnerText)
    Next
    Next


  • User Newbie

    ok adesso proverò


  • User

    io ti consigliere di usare l'Xpath piuttosto dei cicli..
    è piu semplice come manutenibilità di codice e come risorse impiegate è più leggero