elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  XmlDocument.LoadXml ¿Porque no me funciona?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: XmlDocument.LoadXml ¿Porque no me funciona?  (Leído 2,710 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
XmlDocument.LoadXml ¿Porque no me funciona?
« en: 18 Diciembre 2012, 20:43 pm »

- ¿Porque no me funciona?
- ¿Y se puede cargar un archivo xml local sin setearlo en un string?

Código
  1. Imports System.Xml
  2. Imports System.Xml.Serialization
  3. Imports System.IO
  4.  
  5.  
  6.  
  7. Public Class Form1
  8.  
  9.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  10.  
  11.        Dim rawXML As String = _
  12.      "<Company>" & _
  13.      "  <Employee>" & _
  14.      "    <name>John</name>" & _
  15.      "    <Id>1</Id>" & _
  16.      "    <email>John@xxxxxx.com</email>" & _
  17.      "  </employee>" & _
  18.      "  <employee>" & _
  19.      "    <name>Sue</name>" & _
  20.      "    <Id>2</Id>" & _
  21.      "    <email>Sue@xxxxxx.com</email>" & _
  22.      "  </employee>" & _
  23.      "</Company>"
  24.  
  25.        Dim xmlDoc As New XmlDocument
  26.        Dim employeeNodes As XmlNodeList
  27.        Dim employeeNode As XmlNode
  28.        Dim baseDataNodes As XmlNodeList
  29.        Dim bFirstInRow As Boolean
  30.  
  31.        MsgBox("A")
  32.        xmlDoc.LoadXml(rawXML)
  33.        ' Este msgbox no se llega a ver
  34.        MsgBox("B")
  35.        employeeNodes = xmlDoc.GetElementsByTagName("name")
  36.  
  37.        For Each employeeNode In employeeNodes
  38.            baseDataNodes = employeeNode.ChildNodes
  39.            bFirstInRow = True
  40.  
  41.            For Each baseDataNode As XmlNode In baseDataNodes
  42.                If (bFirstInRow) Then
  43.                    bFirstInRow = False
  44.                Else
  45.                    MsgBox(", ")
  46.                End If
  47.                MsgBox(baseDataNode.Name & ": " & baseDataNode.InnerText)
  48.            Next
  49.        Next
  50.    End Sub
  51. End Class


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: XmlDocument.LoadXml ¿Porque no me funciona?
« Respuesta #1 en: 18 Diciembre 2012, 22:17 pm »

Vuelve a probar así ...

Código
  1. Imports System.Xml
  2. Imports System.Xml.Serialization
  3. Imports System.IO
  4.  
  5. Public Class Form1
  6.  
  7.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  8.  
  9.        Dim rawXML As String = _
  10.      "<Company>" & _
  11.      "  <Employee>" & _
  12.      "    <name>John</name>" & _
  13.      "    <Id>1</Id>" & _
  14.      "    <email>John@xxxxxx.com</email>" & _
  15.      "  </employee>" & _
  16.      "  <employee>" & _
  17.      "    <name>Sue</name>" & _
  18.      "    <Id>2</Id>" & _
  19.      "    <email>Sue@xxxxxx.com</email>" & _
  20.      "  </employee>" & _
  21.      "</Company>"
  22.  
  23.        Dim xmlDoc As New XmlDocument
  24.        Dim employeeNodes As XmlNodeList
  25.        Dim employeeNode As XmlNode
  26.        Dim baseDataNodes As XmlNodeList
  27.        Dim bFirstInRow As Boolean
  28.  
  29.        MsgBox("A")
  30.        Try
  31.        xmlDoc.LoadXml(rawXML)
  32.        Catch ex As Exception
  33.        End Try
  34.        ' Este msgbox no se llega a ver
  35.        MsgBox("B")
  36.        employeeNodes = xmlDoc.GetElementsByTagName("name")
  37.  
  38.        For Each employeeNode In employeeNodes
  39.            baseDataNodes = employeeNode.ChildNodes
  40.            bFirstInRow = True
  41.  
  42.            For Each baseDataNode As XmlNode In baseDataNodes
  43.                If (bFirstInRow) Then
  44.                    bFirstInRow = False
  45.                Else
  46.                    MsgBox(", ")
  47.                End If
  48.                MsgBox(baseDataNode.Name & ": " & baseDataNode.InnerText)
  49.            Next
  50.        Next
  51.    End Sub
  52. End Class

Para cargarlo desde un archivo puedes utilizar Load en lugar de LoadXml

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: XmlDocument.LoadXml ¿Porque no me funciona?
« Respuesta #2 en: 18 Diciembre 2012, 22:30 pm »

Nada Nov, no quiere funcionar... no me salta ninguna excepción.
Lo de "Load" lo había visto pero como me decía que era para una URL... xD lo he intentado con load y la app se cuelga en donde la excepción, pero no me manda ningún error, juas.



EDITO:
Vale, ahora sí me salta excepción...

Código:
"There are multiple root elements. Line 2, position 2."

¿Porque me dice que hay multiples elementos, si en teoría de lo que se trata es de obtener multiples elementos del mismo TagName xD?

Código
  1.        Try
  2.            xmlDoc.Load("C:\t.xml")
  3.        Catch ex As Exception
  4.            MessageBox.Show(ex.Message)
  5.        End Try

t.xml:
Código:
<name>1</name>
<name>2</name>
<name>3</name>
<name>4</name>
« Última modificación: 18 Diciembre 2012, 22:39 pm por EleKtro H@cker » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: XmlDocument.LoadXml ¿Porque no me funciona?
« Respuesta #3 en: 18 Diciembre 2012, 22:51 pm »

Si pones un punto de interrupción en la línea 32 del código que te he dejado ves la excepción, que de hecho he marcado más arriba, tu nodo comienza con Employee y termina con employee.
Sobre tu segundo error, los XML tienen que tener un solo nodo raíz.

Saludos
« Última modificación: 18 Diciembre 2012, 23:12 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Porque no funciona?
Programación Visual Basic
& eDu & 9 3,341 Último mensaje 15 Abril 2008, 01:11 am
por seba123neo
porque esto no me funciona?
Programación Visual Basic
Sai-To 3 2,211 Último mensaje 31 Mayo 2008, 19:52 pm
por seba123neo
¿Porque no funciona mi applet?
Java
andres52 3 4,369 Último mensaje 20 Abril 2009, 20:00 pm
por andres52
Porque no funciona?
Programación C/C++
dgg006 3 4,618 Último mensaje 21 Octubre 2011, 01:50 am
por dewolo
¿Porque no funciona? codigo vb6
Programación Visual Basic
RuniksFelipez 1 1,554 Último mensaje 20 Noviembre 2012, 23:28 pm
por Elemental Code
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines