Red de conocimiento informático - Conocimiento de la instalación - Tutorial sobre manipulación VB de objetos XML

Tutorial sobre manipulación VB de objetos XML

Todo está listo. Usemos un ejemplo de implementación DOM de la interfaz COM entre VB y MSXML para obtener una comprensión preliminar de las operaciones XML. Primero, declare las variables de los siguientes objetos: Dim tempdoc como DOMDocument.

Atenuar el nodo temporal como IXMLDOMNode

Atenuar el elemento como IXMLDOMElement

Atenuar el atributo de temperatura como IXMLDOMElement

Atenuar la raíz como IXMLDOMElement Modelo de objetos de documento (DOM) Utilice una serie de objetos correspondientes para describir el estado jerárquico del documento XML. La clase DOMDocument es una clase MSXML que describe la estructura DOM de un documento XML. La clase DOMDocument solo proporciona algunas propiedades y métodos útiles, como: el método Load carga un archivo xml y el método loadxml agrega una cadena al objeto como datos xml. El atributo xml de DOMDocument devuelve la descripción xml del documento, que se puede mostrar para ver cómo se ven realmente estos documentos, o se puede almacenar como un archivo. La propiedad documentElement del objeto DOMDocument representa el nodo raíz de los datos del documento y las operaciones en documentos XML normalmente comienzan desde aquí. DOMDocument proporciona varios métodos para crear nuevos nodos. El método CreateElement crea un nuevo nodo de elemento para el documento. Otros métodos para crear nodos incluyen createAttribute, createProcessingInstruction y createTextNode, que no se presentarán aquí. La clase IXMLDOMNode describe un nodo que proporciona una serie de propiedades y métodos para buscar y manipular documentos XML. El método SelectSingleNode se utiliza para buscar los descendientes del nodo especificado. El lenguaje utilizado para buscar la ruta del nodo especificado se llama XPATH, que es muy complicado. Este artículo no explicará sus especificaciones en detalle. En el objeto IXMLDOMNode, hay muchos valores de atributos útiles: Propiedades. Una colección de atributos de nodo.

Nombre del nodo. El nombre de etiqueta del nodo.

CadenaTipoNodo. El tipo de nodo.

Documento de propietario. Devuelve el nodo contenido en el objeto DOMDocument.

Texto. Representa el contenido de texto contenido en el nodo. Si el nodo contiene otros nodos, entonces el texto representa la combinación del contenido de texto de todos los nodos.

Xml. El contenido xml del nodo se proporciona, por ejemplo, "hongwanfu@yahoo.com". La colección ChildNodes contiene los nodos secundarios de un nodo. Para agregar un nodo secundario a un nodo, primero debe crear un método para el nodo que use un objeto DOMDocument y luego agregar el nodo recién creado a la colección childNodes del nodo principal. La colección ChildNodes contiene los nodos secundarios de un nodo. Para agregar un nodo secundario a un nodo, primero debe crear un método para el nodo que use un objeto DOMDocument y luego agregar el nodo recién creado a la colección childNodes del nodo principal. Debido a que cada tipo de nodo tiene diferentes métodos de acceso y restricciones de contenido, a veces es más fácil usar un tipo específico de nodo que usar un objeto IXMLDOMNode genérico. Para hacer esto, necesita usar objetos IXMLDOMElement para manejar elementos y atributos de datos XML.

Así como los elementos pueden contener elementos secundarios, texto, comentarios, instrucciones de procesamiento, secciones CDATA y referencias de entidades de un archivo de datos XML, los objetos IXMLDOMElement también pueden contener objetos IXMLDOMElement, IXMLDOMText, IXMLDOMComment, IXMLDOMProcessingInstruction, IXMLDOMCDATASection y IXMLDOMEntityReference. Puede acceder al atributo utilizando los métodos getAttribute y setAttribute del objeto IXMLDOMElement o administrar el atributo como un objeto IXMLDOMNamedNodeMap a través de la propiedad de atributos del objeto IXMLDOMElement. Para obtener más información sobre el uso de estos métodos y objetos, consulte la ayuda del SDK de MSXML 4.0. Lo siguiente que debemos hacer es generar un objeto DOMDocument XML: Set tempdoc = New DOMDocument Genere el nodo raíz y configúrelo como la raíz del archivo: Set root = tempdoc createelement(" personal ").

set tempdoc . documentelement = root genera un nodo hijo y lo agrega al nodo raíz, y establece un atributo para este nodo:

set tempnode = tempdoc . ELEMENTO, "Web", "")

tempnode. Text = " "

Root.appendChild tempnode obtiene la interfaz del nodo del elemento y agrega atributos: Establecer tempelement = tempnode.

Tempelemento. establezca el atributo "tipo", "página de inicio" y finalmente escriba un archivo XML: abra "crear archivo xml.xml" y el resultado será el número 1.

Imprimir #1, raíz. Lenguaje de marcado extensible

Cerrar #1El siguiente es el contenido del archivo CreateXMLFile.xml generado por el programa anterior, como se muestra en la figura: Primero cree un archivo llamado Personal.xml: Versión XML = " 1.0 " codificación = "GB 2312"? > Hong Wanfu 1983 x Fecha No. 270, Nuevo Distrito, Facultad de Pesca, Universidad de Jimei, Ciudad de Xiamen, Provincia de Fujian 3610268. Luego, ingrese Visual Basic 6 y cree 7 etiquetas y 7 cuadros de texto, como se muestra en la siguiente figura. Luego, escribe el siguiente código: Opción Explícita.

p_AppPath privado en forma de cadena

Private subform_Load()

Obtiene el directorio de ejecución del programa

p_AppPath = App. ruta

Si es correcta$(p_AppPath, 1) "\"entonces p_AppPath = p_AppPath amp"\"

Cargar valor

Cargar valor

Fin SubPrivate Sub Form_Unload(Descargar como entero)

Guarde el valor existente.

Guardar valores

end sub private unload value()dim XML_document as DOM document dim value_node as ixmldomnode ' cargar archivo Establecer XML_document = Nuevo documento DOM.

documento_xml. Cargue p_AppPath y "Personal.xml"

Si xml_document.documentelement no es nada, salga del subfinal si se encuentra el nodo.

establecer valores_node=XML_document.selectsinglenode("Información personal")

Leer el valor de cada nodo.

txt nombre .text = obtener valor de nodo(valores_nodo, "nombre", "?")

texto txt= obtener valor de nodo(valores_nodo, "género", " ? ")

txtcumpleaños. text = get nodevalue(values_node,"fecha de nacimiento","?")

txt dirección. text = getnodevalue(values_node," dirección ", " ? ")

txtzzip. text = getnodevalue(values_node, "código postal", "?")

txtQQ. Text = GetNodeValue(values_node, "QQ", "?")

txt home page. text = get nodevalue(values_node, "Página de inicio personal", "?")End Sub 'Devuelve el valor de cada nodo de la función privada obtener valor de nodo (byval start_at_node es ixmldomnode, byval node_name es una cadena, _optional byval default_value es cadena = "")string dim value_node es ixmldomnode.

establecer value_node = start_at_node . selectsinglenode(". /// amp; nombre de nodo)

Si value_node está vacío, entonces

GetNodeValue =Valor predeterminado

p>

Otro

GetNodeValue =Text

"Función End IfEnd" Guarda los valores existentes Private Sub SaveValues().

Atenuar documento_xml como DOMDocument

Atenuar nodo_valores como IXMLDOMNode

Crear documento XML

Establecer xml_document = Nuevo documento DOM

establecer valores_nodo = XML_document.createelement("Información personal")

xml_document.appendChild subvalor_nodo

CrearNodo valores_nodo, "nombre", txtName. texto

CreateNode valores_nodo, "género", txtSex. text

CreateNode valores_node, "Fecha de nacimiento", txtCumpleaños. texto

CreateNode valores_nodo, " dirección ", txtAddress. text

Crear nodo value_node, "zipcode", txtZip. texto

CreateNode valores_nodo, "QQ", txtQQ. Texto

CreateNode valores_node, "Página de inicio personal", txtHomepage. Texto

Guardar archivo XML

Guardar p_AppPath amp" Personal.xml "

end Sub private Sub crear nodo (ByVal padre como IXMLDOMNode, _ByVal node_name como cadena, ByVal node_value As String) Dim new_node As IXMLDOMNode

establecer new_node = padre documento propietario createelement(node_name)

Nuevo nodo. Texto = valor de nodo

parent.appendChild new_node

End Los resultados de ejecución de Sub son los siguientes: Aunque MSXML proporciona una herramienta para cargar y almacenar documentos XML desde Visual Basic6.0, su La aplicación requiere que los programadores tengan cierto conocimiento de la interfaz COM entre VB y MSXML, por lo que no se utiliza mucho.

Autor: Hong Wanfu Fuente: Microsoft Community Editor: Ark [2003-08-20 10:45] Este artículo proporciona información sobre XML para usuarios de desarrollo de VB que planean actualizar aplicaciones a la sugerencia de VB.NET. La aparición de Visual Basic.NET ha cambiado enormemente esta situación. visual Basic.NET proporciona herramientas completas para usar XML, XSL y otras herramientas XML, lo que permite a los usuarios implementar fácilmente aplicaciones XML sin escribir código. ADO.NET es el componente utilizado para el acceso a datos en la nueva versión de Microsoft. NET marco. Su mayor ventaja es el uso de XML como estándar para la transmisión de datos. Siempre que haya texto XML, se puede leer en ADO. NET y luego ADO.NET lo envía a la base de datos u otro componente en formato XML. Los archivos XML se pueden leer en un conjunto de datos utilizando el método ReadXML del objeto DataSet. Este es un método sobrecargado con varios formatos de sintaxis. El formato comúnmente utilizado es el siguiente: ReadXML(FileName), donde FileName es el nombre del documento XML.

Ahora lea el texto XML creado anteriormente "Personal.xml" en el conjunto de datos. Cree un nuevo proyecto, cree un botón y un control DataGrid en el formulario, haga doble clic en Botón1 e ingrese el siguiente código: Dim ds As New DataSet()' para leer el documento XML.

ds. ReadXml("personal.xml ")

Mostrar tb como tabla de datos

Atenuar dv como vista de datos

tb = ds. tabla(0)

dv = nueva vista de datos(tb)

i. Fuente de datos DataGrid1 = dv