XML - Parsear XML

 
Vista:

Parsear XML

Publicado por Aeray (1 intervención) el 15/09/2006 17:10:52
Hola, alguien me puede decir como puedo leer los tags directamente de un XML desde VB6 ya que tengo el problema que al invocar un WebService que esta con WebSphere 5 la estructura que me devuelve es algo asi:

<nombreCliente>Raymundo<nombreCliente>

pero si el WebSphere es version 6 me devuelve:

<P782:nombreCliente>Raymundo<nombreCliente>

es decir le agrega unas etiquetas(p782) y como yo tengo en "duro" leer el tag <nombreCliente>
no lo encuentra al ser <P782:nombreCliente>

Me dicen que tengo que implementar un parser basado en SOAP que lea la publicacion de un WSDL y que no importa si cambia la estructura del XML que debe de funcionar igual

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Leer tags de un XML en VB6 con prefijos de espacio de nombres

Publicado por Alejandro (258 intervenciones) el 13/07/2023 20:16:20
En Visual Basic 6, puedes utilizar la biblioteca de Microsoft XML (MSXML) para leer y manipular archivos XML. Puedes seguir estos pasos para leer los tags directamente de un XML, incluso cuando se agregan prefijos de espacio de nombres:

1. Agrega una referencia a la biblioteca de Microsoft XML (MSXML) en tu proyecto VB6:
- En el entorno de desarrollo de VB6, ve al menú "Proyecto" y selecciona "Referencias".
- En la lista de referencias disponibles, busca y marca la opción "Microsoft XML, v6.0" (o una versión compatible).
- Haz clic en "Aceptar" para agregar la referencia a tu proyecto.

2. Utiliza el objeto `DOMDocument` de MSXML para cargar y analizar el archivo XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim xmlDoc As MSXML2.DOMDocument
Set xmlDoc = New MSXML2.DOMDocument
 
' Carga el archivo XML desde una ruta o una cadena de texto '
xmlDoc.Load "ruta_del_archivo.xml"
 
' Verifica si ocurrieron errores al cargar el archivo '
If xmlDoc.parseError.errorCode <> 0 Then
    ' Manejo de errores, si es necesario '
    MsgBox "Error al cargar el archivo XML: " & xmlDoc.parseError.reason
Else
    ' El archivo XML se cargó correctamente '
    ' Puedes continuar con la manipulación del XML '
End If

3. Para acceder a los elementos XML, puedes utilizar métodos y propiedades del objeto `DOMDocument`:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
' Obtén una referencia al elemento principal (root) del XML '
Dim rootElement As MSXML2.IXMLDOMElement
Set rootElement = xmlDoc.documentElement
 
' Obtén los elementos hijos del elemento principal '
Dim childElements As MSXML2.IXMLDOMNodeList
Set childElements = rootElement.childNodes
 
' Recorre los elementos hijos y obtén el valor de los tags '
Dim i As Integer
For i = 0 To childElements.Length - 1
    Dim childElement As MSXML2.IXMLDOMElement
    Set childElement = childElements.Item(i)
 
    ' Accede al valor del tag '
    Dim tagValue As String
    tagValue = childElement.Text
 
    ' Haz lo que necesites con el valor del tag '
    MsgBox "Valor del tag: " & tagValue
Next i

Al utilizar MSXML en VB6, deberías poder leer y acceder a los tags del XML, incluso cuando se agregan prefijos de espacio de nombres como en tu caso con el WebSphere 6. No es necesario implementar un parser SOAP adicional para esta tarea.

Recuerda adaptar el código según tus necesidades y asegurarte de manejar adecuadamente los errores y excepciones durante la manipulación del XML.

Espero que esta solución te sea útil. ¡Buena suerte con tu proyecto en VB6!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar