Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - lettura nodi xml
Forum - C# / VB.NET - lettura nodi xml

Avatar
mizar1 (Normal User)
Pro


Messaggi: 72
Iscritto: 09/11/2009

Segnala al moderatore
Postato alle 21:09
Giovedė, 05/12/2013
salve ho un problema nella lettura dei nodi di un file xml
vi faccio un esempio
file xml

- <AAAAAA>

     - <AMICO>
           <name>MARCO</name>
           <rotNum>0000000</rotNum>
        </AMICO>

     - <NEMICO>
            <name>ANDREA</name>
            <rotNum>1111111</rotNum>
        </NEMICO>


    - <BBBBBB>
        - <spread>
              <lotto>0.25</lotto>
              <merce>1.819</merce>
              <cassa>-0.25</cassa>
              <vendita>2.02</vendita>
          </spread>
   </BBBBBB>

     - <AMICO>
           <name>FRANCO</name>
           <rotNum>666666</rotNum>
       </AMICO>
     - <NEMICO>
            <name>LUIGI</name>
            <rotNum>888888</rotNum>
        </NEMICO>
    - <BBBBBB>
        - <spread>
              <cassa>-0.95</cassa>
              <vendita>2.22</vendita>
          </spread>
   </BBBBBB>

    - <AMICO>
           <name>MIRKO</name>
           <rotNum>444444</rotNum>
       </AMICO>
     - <NEMICO>
            <name>MAURIZIO</name>
            <rotNum>55555</rotNum>
       </NEMICO>
    - <BBBBBB>
        - <spread>
             <lotto>0.825</lotto>
              <merce>1.8819</merce>
              <cassa>-0.285</cassa>
              <vendita>2.082</vendita>
          </spread>
   </BBBBBB>

attenzione la root principale e' AAAAA pero i vari nodi allo stesso livello hanno nomi diversi
per esempio BBBBB e' allo stesso livello di AMICO

io dovrei recuperare e mettere in un datagridview il valore di "name" , "lotto", "merce"

puo' capitare che per alcuni "name" non ci siano i valori di  "lotto" e "merce"


ho fatto cosi

Imports System.Xml








Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

      
  Try
            Dim m_xmld As XmlDocument
            Dim m_nodelist As XmlNodeList
            Dim m_node As XmlNode
            m_xmld = New XmlDocument()
            m_xmld.Load("file.xml")
            m_nodelist = m_xmld.SelectNodes("//AAAAAA/AMICO")
            Dim x As Integer
            DataGridView1.Rows.Clear()
            For Each m_node In m_nodelist
                Dim VALORE1= m_node.ChildNodes.Item(0).InnerText
                DataGridView1.Rows.Add()
                DataGridView1.Rows(x).Cells(0).Value = x
                DataGridView1.Rows(x).Cells(1).Value = VALORE1
                ListBox1.Items.Add(hometeamValue)
            Next

                

           nodelist = m_xmld.SelectNodes("//AAAAAA/BBBBBB/SPREAD")
            Dim y As Integer
          
            For Each m_node In m_nodelist
                Dim VALORE2= m_node.ChildNodes.Item(0).InnerText
                DataGridView1.Rows(y).Cells(2).Value = VALORE2
                   y = y + 1
            Next
END SUB

praticamente faccio 2 cicli con due percorsi diversi
pero' cosi' facendo quando trovo che mancano i campi non riesco intercettarlo

come posso fare


PM Quote
Avatar
mizar1 (Normal User)
Pro


Messaggi: 72
Iscritto: 09/11/2009

Segnala al moderatore
Postato alle 21:36
Venerdė, 06/12/2013
praticamente non capisco
come fare a capire se un nodo figlio esiste o meno

cioe' se in un iterazione un nodo figlio c'e' e in un altra iterazione non c'e ' come posso fare?

esempio qui sotto
vediamo se mi spiego meglio
io devo prelevare tutti i valori che ho nel nodo nome
insieme a quelli che ho nel sottonodo corso2

pero' ci sono alcuni casi come gli id 4,5,6 e 7 che il nodo corso2 non esiste
come posso fare ?

<mrwcorsi>
    <docente>
        <nome id="1">Luca Ruggiero</nome>
        <corso>ASP</corso>
                 <corso2>ddddd</corso2>
    </docente>
    <docente>
        <nome id="2">Giuseppina Pede</nome>
        <corso>Visual Basic</corso>
                 <corso2>ddddd</corso2>
    </docente>
    <docente>
        <nome id="3">Claudio Garau</nome>
        <corso>PHP</corso>
                 <corso2>ddddd</corso2>
    </docente>
    <docente>
        <nome id="4">Alessandro Alessandrini</nome>
        <corso>Front Page 2000</corso>
    </docente>
    <docente>
        <nome id="5">Emanuela Uttinacci</nome>
        <corso>Dreamweaver MX</corso>
    </docente>
    <docente>
        <nome id="6">Pierpaolo Romanelli</nome>
        <corso>MS Access</corso>
    </docente>
    <docente>
        <nome id="7">Riccardo Romito</nome>
        <corso>Flash MX</corso>
    </docente>
    <docente>
        <nome id="8">Roberto Franchini</nome>
        <corso>ASP.NET</corso>
                 <corso2>ddddd</corso2>
    </docente>
    <docente>
        <nome id="9">Marco Petrillo</nome>
        <corso>AutoCAD</corso>
                 <corso2>ddddd</corso2>
    </docente>
</mrwcorsi>

Ultima modifica effettuata da mizar1 il 06/12/2013 alle 21:58
PM Quote