Cómo recorrer XML con la clase XPathNavigator mediante el uso de Visual Basic

Seleccione idioma Seleccione idioma
Id. de artículo: 301111 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E301111
Para obtener una versión de Microsoft Visual C# del presente artículo, Consulte 308343.
Para obtener una versión 6.0 de Microsoft Visual Basic de este artículo, consulte 271619.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso se muestra cómo recorrer Documentos Extensible Markup Language (XML) con un objeto XPathNavigator creado a partir de un objeto XPathDocument . En este ejemplo carga un objeto XPathDocument con datos XML, crea un objeto XPathNavigator como una vista de los datos y muestra el XML recorriendo en el documento.

Requisitos

El lista siguiente describe el hardware recomendado, software, red infraestructura y service packs que necesita:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Microsoft Windows NT 4.0 Server
  • Visual Studio de Microsoft 2005 o Microsoft Visual Studio .NET
Esto artículo se supone que está familiarizado con los temas siguientes:
  • Terminología XML
  • Crear y leer archivos XML
  • Sintaxis de XML Path Language (XPath)

Cómo utilizar la clase XPathNavigator para recorrer XML

  1. En 2005 de Visual Studio o en Visual Studio. NET, cree un Visual Basic 2005 o aplicación de consola de. Visual Basic.

    Nota Este ejemplo utiliza un archivo denominado Books.xml. Puede crear su propio archivo Books.xml, o puede utilizar el ejemplo que se incluye con el Tutoriales del Kit (SDK) de desarrollo de software.. Si tiene los tutoriales rápidos instalado, el archivo Books.xml se encuentra en la carpeta siguiente:
    \Archivos de programa\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Como alternativa, puede obtener este archivo, visite el siguiente sitio Web:
    http://msdn.Microsoft.com/en-us/library/Windows/Desktop/ms762271 (v=vs.85) .aspx

    Debe copiar el archivo Books.xml a la Carpeta \Bin\Debug que se encuentra en la carpeta en la que se creó proyecto.
  2. Asegúrese de que el proyecto hace referencia el espacio de nombres System.Xml .
  3. Utilice la instrucción Imports en los espacios de nombres Xml y XPath , por lo que no tenga que calificar las declaraciones en esos espacios de nombres más adelante en el código. Debe utilizar la instrucción Imports antes que cualquier otra declaración.
    Imports System.Xml
    Imports System.Xml.XPath
    					
  4. Declare las variables apropiadas. Declarar un objeto XPathDocument para mantener el documento XML y un objeto XPathNavigator para evaluar expresiones XPath y moverse por el documento. Declare un objeto String para almacenar la expresión XPath. Agregue el código de declaración en el procedimiento Main de Module1.
    Dim nav As XPathNavigator
    Dim docNav As XPathDocument
    					
  5. Cargar un objeto XPathDocument con el archivo de ejemplo Books.xml. La clase XPathDocument utiliza Extensible Stylesheet Language Transformations (XSLT) para proporcionar una caché rápida y orientada al rendimiento para procesar documentos XML. Es similar a XML Document Object Model (DOM), pero está muy optimizada para procesar XSLT y el modelo de datos XPath.
    'Open the XML.
    docNav = New XPathDocument("books.xml")
    					
  6. Crear un objeto XPathNavigator del documento. XPathNavigator permite desplazarse por los nodos de atributos y el nodos de espacio de nombres en un documento XML.
    'Create a navigator to query with XPath.
    nav = docNav.CreateNavigator
    					
  7. Vaya a la raíz del documento con el método MoveToRoot . MoveToRoot establece el explorador en el nodo del documento que contiene toda la árbol de nodos.
    'Initial XPathNavigator to start at the root.
    nav.MoveToRoot()
    					
  8. Utilice el método MoveToFirstChild para ir a los hijos del documento XML. El método MoveToFirstChild se mueve al primer hijo del nodo actual. En el caso de la fuente del archivo Books.xml, que está moviendo desde el documento raíz en el los niños, la sección comentarios y el nodo librería.
    'Move to the first child node (comment field).
    nav.MoveToFirstChild()
    					
  9. Utilice el método MoveToNext para recorrer los nodos en niveles hermanos. El método MoveToNext se mueve al siguiente hermano del nodo actual.
    'Loop through all the root nodes.
    Do
        ...
    Loop While nav.MoveToNext
    					
  10. Utilice la propiedad NodeType para asegurarse de que sólo está procesando nodos de elemento, y utilice la propiedad Value para mostrar la representación de texto del elemento.
    Do
        'Find the first element.
        If nav.NodeType = XPathNodeType.Element Then
    'If children exist.
    If nav.HasChildren Then
    
        'Move to the first child.
        nav.MoveToFirstChild()
    
        'Loop through all the children.
        Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)
    Loop While nav.MoveToNext
    
    End If
        End If
    Loop While nav.MoveToNext
    					
  11. Utilice la propiedad HasAttributes para determinar si un nodo tiene atributos. Se puede También puede utilizar otros métodos, como MoveToNextAttribute, para ir a un atributo y examinar su valor. Nota que este segmento de código sólo recorre todos los descendientes del nodo raíz y no el árbol completo.
    Do
        'Find the first element.
        If nav.NodeType = XPathNodeType.Element Then
    'if children exist
    If nav.HasChildren Then
    
        'Move to the first child.
        nav.MoveToFirstChild()
    
        'Loop through all the children.
        Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)
    
    'Check for attributes.
    If nav.HasAttributes Then
        		Console.WriteLine("This node has attributes")
    End If
    Loop While nav.MoveToNext
    
    End If
        End If
    Loop While nav.MoveToNext
    					
  12. Utilice el método ReadLine del objeto Console para agregar una pausa al final de la pantalla de la consola más mostrar fácilmente los resultados anteriores.
    'Pause.
    Console.ReadLine()
    					
  13. Genere y ejecute el proyecto de aplicación de consola.

Código completo

Imports System.Xml
Imports System.Xml.XPath

Module Module1

    Sub Main()
        Dim nav As XPathNavigator
        Dim docNav As XPathDocument
        docNav = New XPathDocument("books.xml")
        nav = docNav.CreateNavigator
        nav.MoveToRoot()
        'Move to the first child node (comment field).
        nav.MoveToFirstChild()

        Do
            'Find the first element.
            If nav.NodeType = XPathNodeType.Element Then
                'if children exist
                If nav.HasChildren Then

                    'Move to the first child.
                    nav.MoveToFirstChild()

                    'Loop through all the children.
                    Do
                        'Display the data.
                        Console.Write("The XML string for this child ")
                        Console.WriteLine("is '{0}'", nav.Value)

                        'Check for attributes.
                        If nav.HasAttributes Then
                            Console.WriteLine("This node has attributes")
                        End If
                    Loop While nav.MoveToNext

                End If
            End If
        Loop While nav.MoveToNext

        'Pause.
        Console.ReadLine()

    End Sub

End Module
				

Referencias

Para obtener más información, visite el siguiente Web de Microsoft Developer Network (MSDN) sitios:
XML en.: clases de XML de.NET Framework y C# ofrecen la manipulación de datos simple y escalable
http://msdn.Microsoft.com/msdnmag/issues/01/01/XML

XPathNavigator clase
http://msdn.Microsoft.com/en-us/library/System.Xml.XPath.XPathNavigator.aspx

XPathDocument clase
http://msdn.Microsoft.com/en-us/library/System.Xml.XPath.XPathDocument.aspx

Transformaciones XSLT con la clase XslTransform
http://msdn.Microsoft.com/en-us/library/System.Xml.Xsl.XslTransform.aspx

Ejemplos de XPath
http://msdn.Microsoft.com/en-us/library/ms256086.aspx
Para obtener más información, visite el siguiente sitio Web de World Wide Web Consortium (W3C):
XML Path Language (XPath)
Versión 1.0: W3C recomendación 16 noviembre 1999
http://www.w3.org/TR/1999/REC-xpath-19991116

Propiedades

Id. de artículo: 301111 - Última revisión: jueves, 5 de julio de 2012 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palabras clave: 
kbvs2005applies kbvs2005swept kbdownload kbsample kbhowtomaster kbmt KB301111 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 301111

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com