Cómo: Modificar datos XML utilizando DOM en .NET Framework con Visual Basic .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 317665 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso describe cómo utilizar la clase System.Xml.XmlDocument y clases relacionadas para modificar mediante programación de documentos de lenguaje de marcado extensible (XML).

Contenido XML se puede clasificar ampliamente en una colección de nodos y atributos de los nodos. Puede modificar el contenido modificando los atributos o nodos. La clase System.Xml.XmlDocument implementa el analizador DOM XML principales de .NET Framework. Esta clase es compatible con los estándares de nivel 2 principales y World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1. Puede utilizar la implementación del modelo DOM para modificar el contenido de documentos XML; por ejemplo, insertar, actualizar o eliminar datos.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Windows XP, Microsoft Windows 2000 o Microsoft Windows NT 4.0 Service Pack 6a
  • Microsoft Data Access Components 2.6 (MDAC) o posterior
  • Microsoft Visual Studio .NET
En este artículo se supone que está familiarizado con los temas siguientes:
  • Sintaxis de Visual Basic .NET
  • XML y estándares relacionados

Métodos y propiedades de clases de System.Xml

La lista siguiente describen varios métodos y propiedades de clases de System.XML . Para obtener más información, consulte la documentación del Kit de desarrollo de software (SDK) de Microsoft .NET Framework.
  • datos XML de actualización:

    Utilice el InnerText y las propiedades InnerXml de clases como XmlDocument , XmlElement o XmlAttribute para modificar el contenido. Estas clases se derivan de la clase System.Xml.XmlNode , por lo que estas clases heredan varias propiedades y métodos de la clase de XmlNode . InnerXml proporciona acceso al contenido incluido el marcado. Puede utilizar la propiedad Value para establecer el valor de un nodo. Utilice la propiedad prefix para establecer el prefijo de espacio de nombres de un nodo. Se modifica en la depende del tipo del nodo.
  • Agregar nuevos datos XML:

    Utilice métodos PrependChild y la AppendChild para agregar un nodo al final o al principio de la lista de elementos secundarios. De forma similar, puede utilizar el método InsertAfter o InsertBefore para agregar un nodo después o antes del nodo actual, respectivamente. Además, puede utilizar métodos de XmlDocument que empiezan con el prefijo de crear , como CreateElement CreateAttribute y CreateWhitespace , para construir el nuevo contenido.

    Normalmente, construir los elementos necesarios y, a continuación, agregar los nuevos elementos a los datos XML existentes. En lugar de crear todo el contenido nuevo, puede utilizar el método Clone o el método CloneNode copiar nodos existentes y a continuación, modificar los datos y agregar los nodos modificados en el árbol como nuevo contenido.
  • datos XML de eliminar:

    Utilice el método RemoveChild de XmlDocument o XmlElement para quitar un nodo secundario específico o un atributo. Utilice el método RemoveAll del XmlDocument o XmlElement para quitar todos los nodos secundarios o atributos. Puede eliminar atributos mediante uno de los siguientes métodos de XmlElement :
    • RemoveAllAttributes
    • RemoveAttribute
    • RemoveAttributeAt
    • RemoveAttributeNode
Nota : antes que elimina o modificar un nodo o atributo, quizás tenga que buscar o seleccione el nodo requerido o nodos. La clase XmlDocument proporciona varios métodos y propiedades para buscar los nodos. Para obtener información adicional, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
317663Cómo: Obtener acceso a datos XML utilizando DOM en .NET Framework con Visual Basic .NET

Crear el ejemplo de Visual Basic .NET

El ejemplo de paso a paso de código siguiente muestra cómo utilizar algunos de los métodos que se describen en este artículo para modificar datos XML:
  1. En el Bloc de notas o un editor de texto similar, cree un nuevo archivo XML con los siguientes datos y, a continuación, guarde el archivo como C:\Q317665.xml:
    <?xml version='1.0' encoding='ISO-8859-1'?>
    <Collection>
       <Book Id='1'>
          <Title>Principle of Relativity</Title>
          <Author>Albert Einstein</Author>
          <Genre>Physics</Genre>
       </Book>
       <Book Id='2'>
          <Title>Cosmos</Title>
          <Author>Carl Sagan</Author>
          <Genre>Cosmology</Genre>
       </Book>
    </Collection>
    					
  2. Siga estos pasos para crear un nuevo proyecto de aplicación de consola de Visual Basic .NET:
    1. Inicie Microsoft Visual Studio NET..
    2. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
    3. En el cuadro de diálogo Nuevo proyecto , haga clic en Proyectos de Visual Basic bajo Tipos de proyecto y, después, haga clic en Aplicación de consola en plantillas .
  3. Reemplace el código de Module1.vb con el siguiente código:
    Imports System.Xml
    Imports System.Text
    
    Module Module1
    
       Sub Main()
    
          Try
    
             ' Create an Xml document instance and load XML data.
             Dim doc As XmlDocument = New XmlDocument()
             doc.Load("C:\Q317665.xml")                      
    
             ' I. Modification
             ' 1. Increment all the Book Id attribute values by 100.
             Dim nodeList As XmlNodeList = doc.SelectNodes("//Book")
             Dim node As XmlNode
             For Each node In nodeList
                node.Attributes("Id").Value = node.Attributes("Id").Value + 100
             Next
    
             ' 2. Update the capitalization of the book titles.
             For Each node In nodeList
                node.FirstChild.InnerText = (node.FirstChild.InnerText).ToUpper
             Next
    
             ' 3. Modify the XML declaration instruction to have Unicode encoding.
             Dim decl As XmlDeclaration = doc.FirstChild
             decl.Encoding = "UTF-16"
    
             ' II. Addition
             ' 1. Create a new Book element.
             Dim newElem As XmlElement = doc.CreateElement("Book")
    
             ' Add the Id attribute.
             Dim newAttr As XmlAttribute = doc.CreateAttribute("Id")
             newAttr.Value = "103"
             newElem.Attributes.Append(newAttr)
    
             ' Create the child nodes. The following example shows various ways to add child nodes.
             newElem.InnerXml = "<Title></Title><Author></Author>"
             Dim txtNode As XmlText = doc.CreateTextNode("A BRIEF HISTORY OF TIME")
             newElem.FirstChild.AppendChild(txtNode)
             newElem.AppendChild(doc.CreateWhitespace(ControlChars.CrLf))
             newElem.Item("Author").InnerText = "Stephen Hawking"
    
             ' 2.  Add the new element to the end of the book list.
             doc.DocumentElement.AppendChild(newElem)
    
             ' III. Deletion
             ' 1. Remove the Genre nodes from Book elements.
             For Each node In nodeList
                node.RemoveChild(node.SelectSingleNode("Genre"))
             Next
    
             ' Display the output in the Debug window.
             Diagnostics.Debug.Write("{0}", doc.OuterXml & vbNewLine)
    
             ' 2. Save the modified XML to a file in Unicode format.
             doc.PreserveWhitespace = True
             Dim wrtr As XmlTextWriter = New XmlTextWriter("C:\Q317665_Out.xml", Encoding.Unicode)
             doc.WriteTo(wrtr)
             wrtr.Close()
             Console.WriteLine("C:\Q317665_Out.xml is created")
             Console.ReadLine()
    
          Catch xmlex As XmlException                  ' Handle the Xml Exceptions here.
             Console.WriteLine("{0}", xmlex.Message)
          Catch ex As Exception                        ' Handle the generic Exceptions here.
             Console.WriteLine("{0}", ex.Message)
          End Try
    
       End Sub
    
    End Module
    						
    este código realiza las siguientes tareas:
    • Carga el documento XML desde un archivo que representa una colección de libros.
    • Modifica parte del contenido.
    • Crea y agrega un nuevo elemento de libro.
    • Elimina uno de los nodos secundarios de todos los nodos de libro.
    • Guarda los datos modificados como un archivo XML nuevo.

  4. Lea los comentarios en línea para comprender la funcionalidad del código. Compile y ejecute la aplicación. Utilizar Microsoft Internet Explorer para abrir el archivo C:\Q317665_Out.xml. El resultado debería parecerse al siguiente:
    <?xml version="1.0" encoding="UTF-16" ?> 
    - <Collection>
      - <Book Id="101">
          <Title>PRINCIPLE OF RELATIVITY</Title> 
          <Author>Albert Einstein</Author> 
        </Book>
      - <Book Id="102">
          <Title>COSMOS</Title> 
          <Author>Carl Sagan</Author> 
        </Book>
      - <Book Id="103">
          <Title>A BRIEF HISTORY OF TIME</Title> 
          <Author>Stephen Hawking</Author> 
      </Book>
      </Collection>
    						

Referencias

Para obtener información adicional, haga clic en los números de artículo correspondientes para verlos en Microsoft Knowledge Base:
313824INFO: Guía para la programación XML con el Analizador de modelo DOM en .NET Framework
313651INFORMACIÓN: Guía básica para XML en .NET Framework
Para obtener información adicional, visite los siguientes sitios Web de Microsoft:
Espacio de nombres System.Xml
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxml.asp

XML
http://msdn.microsoft.com/xml

Propiedades

Id. de artículo: 317665 - Última revisión: martes, 16 de septiembre de 2003 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Palabras clave: 
kbmt kbbcl kbhowtomaster KB317665 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): 317665

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