none
Por que me lanza el mensaje 2 veces RRS feed

  • Pregunta

  • Buenas en este for me lanza el mensaje 2 veces y no se por que 

    alguien podria decirme algo

    Gracias

    XmlDocument_Dry_Hopping = New XmlDocument
    
            Dim ruta As String = New Regex("[/]").Replace("RECETAS\" & Inicio.DataGridView1.CurrentRow.Cells(0).Value & "_" & Inicio.DataGridView1.CurrentRow.Cells(1).Value, "_") & "\DryHopping.xml"
            Dim Ruta2 As String = ruta.Replace("\", "/")
    
            Dim existe As String
            existe = My.Computer.FileSystem.FileExists(ruta)
            If existe = True Then
                Dim nodeToFind As XmlNode
                
                Dim nodelist As XmlNodeList
                XmlDocument_Dry_Hopping.Load(Ruta2)
                Dim root As XmlNode = XmlDocument_Dry_Hopping.DocumentElement
                Dim Nombre_Lupulo = String.Empty
                Nombre_Lupulo = New Regex("[ ().]").Replace(Receta_Nueva.DGV_Lupulos.CurrentRow.Cells(0).Value, "")
                Dim nombre As XmlElement = XmlDocument_Dry_Hopping.CreateElement(Nombre_Lupulo)
                nodelist = XmlDocument_Dry_Hopping.SelectNodes(root.Name & "/" & Nombre_Lupulo)
                nodeToFind = root.SelectSingleNode("//" & root.Name & "/" & Nombre_Lupulo)
                
                If (Not (nodeToFind) Is Nothing) Then
                    
                    For Each node As XmlNode In nodeToFind
                        If nodeToFind.ChildNodes(DGV_DryHopping.CurrentRow.Index).ChildNodes(0).InnerText = DGV_DryHopping.CurrentRow.Cells(0).Value Then
                            MsgBox(nodeToFind.ChildNodes(DGV_DryHopping.CurrentRow.Index).ChildNodes(0).InnerText & DGV_DryHopping.CurrentRow.Index)
                        End If
    
                    Next

    viernes, 23 de febrero de 2018 7:49

Todas las respuestas

  • me lanza el mensaje 2 veces y no se por que
    Con el bucle "For Each node As XmlNode In nodeToFind" le estás diciendo que recorra todos los nodos hijos de nodeToFind. Por cada uno de esos nodos, se examina la condiciónque tienes en el "If", y si la condición se cumple se presenta el mensaje. Por lo tanto, si el mensaje te sale dos veces, significa que dos de los nodos hijos de nodeToFind cumplen la condición que estás validando en el "If".
    viernes, 23 de febrero de 2018 12:50
  • los Nodos que compara son estos pero depende del contenido de la fila y celda 0 del datagridview

    <Dry_Hopping>
      <Columbus>
      <Items>
          <Fecha_Inicio>11/02/2018</Fecha_Inicio>
          <Fecha_Fin>17/02/2018</Fecha_Fin>
          <Peso>12</Peso>
          <Agregado>Primario</Agregado>
          <Df>1010</Df>
        </Items>
        <Items>
          <Fecha_Inicio>18/02/2018</Fecha_Inicio>
          <Fecha_Fin>24/02/2018</Fecha_Fin>
          <Peso>14</Peso>
          <Agregado>Primario</Agregado>
          <Df>1010</Df>
        </Items>
      </Columbus>

    viernes, 23 de febrero de 2018 16:03
  • Gracias por responder a los 2 al final lo he solucionado de esta manera 

    1000 Gracias

     If (Not (nodeToFind) Is Nothing) Then
                    For Each node As XmlNode In nodeToFind
    
                        If node.ChildNodes(0).InnerText = DGV_DryHopping.CurrentRow.Cells(0).Value Then
                            MsgBox(node.ChildNodes(0).InnerText & " -- " & node.ChildNodes(0).Name & " -- " & nodeToFind.ChildNodes(DGV_DryHopping.CurrentRow.Index).ChildNodes(0).InnerText & " -- " & DGV_DryHopping.CurrentRow.Index)
                        End If
    
                    Next

    viernes, 23 de febrero de 2018 19:00